평소에 리액트로 앱서비스 개발 정도 취미로 하다가
게임 만들어보고 싶어서 호기롭게 유니티 깔았는데
너무 어렵네요
지금까지 제가 간단하게 이해한게 맞는지 확인 부탁드립니다.....
먼저 오브젝트를 만들고
오브젝트에 컴포넌트들을(물리나,, 스크립트나,, 그런거) 붙여서 어떤 일이 일어날지... 그런거 작성하는데
여기서 스크립트는 컴포넌트 요소들 객체인지 구조체인지 아무튼 그거 끌고와서 임의의 방식으로 작동하게 만들수있게 하는거..
대충 이렇게 이해했는데 맞나요?
추가로 아직 뭔지 알쏭달쏭한게
강좌들을 보면 하이어아키에 빈 오브젝트를 만들어서 스크립트를 넣던데
이렇게 하는 이유가 뭔가요??
둘째로 스크립트를 넣고
해당 스크립트 안에 클래스로 변수 선언을 하면(ex/gameManger)
gui에 (Game Manger) 이렇게 칸이 뜨는데
이게 도대체 뭔가요??
import 하는거랑 비슷한걸로 이해했는데
그게 맞나요,,,??
하아.. 너무 어렵네요 ㅋㅋ
제 질문들 수준이 처참한데 이해가 될런지 모르겠습니다
이정도로 보시고 어떤게 많이 부족할거같은지 도움될만한 강좌나..그런게 있다면 추천부탁드려용..하하
아예 모르면 골드애플 이런거나 따라해봐라
골드메탈 말씀하시는거 맞나용 retro인가 그분꺼 따라하고 있긴 한데.. 중간중간에 이건 왜 굳이 이런 구조로 만드는지에 대한 설명같은걸 해주시면 좋을거같은데 그냥 이러 이렇게 해라고만 하는 강좌가 많아서 이해하기가 더 어렵네요,, 머리가 나빠서 흑ㅎㄱ
나도 너같은 초보였어서 -지금도 초보- 무슨 고민인지 암 강의 프로젝트 하나 가지고 다 이해할려 하지말고 여러 프로젝트 많이 보다보면 같은 기능을 많이 보게 되고 그럼 이해됨
골드메탈 강의 일단 끝까지 다 봐보삼 ㅋ
어느 정도 하다가 C#을 제대로 공부하는것도 도움 많이됨 기본기가 좋으면 이해가 더 쉬워짐 나도 30시간 짜리 강의 들음
약간 '어떤 게임이든 한번 만들어보고 싶다' 의 상태라면 강좌를 다 볼텐데 '이런이런 게임 만들어보고싶다'는 상태여서 뭔가 자꾸 내 방향이랑 안맞아보이는건 스킵하게 되네요.. 님 말대로 방향이 좀 달라보여도 여러가지 따라해보면서 전체적으로 이해를 해봐야겠어용
질문에 대한 답은 스크립트 생성하면 자동으로 상속받는 모노비헤이비어에 대해 알아보시면 금방 이해하시지 않을까 생각하는거에요.
MonoBehaviour 클래스는 에디터에서 게임 오브젝트에 스크립트를 연결할 수 있는 프레임워크를 제공할 뿐만 아니라, 시작 및 업데이트 등과 같은 유용한 이벤트에 대한 연결을 제공합니다. 이렇게 나오긴 하네용 제가 질문을 너무 두루뭉실하게 했는데, 그냥 스프라이트같은 오브젝트가 있다치면, 거기에 바로 스크립트 넣지 않고 빈 오브젝트를 만들어서 스크립트 넣고 그걸 또 다시 다른 오브젝트 인스펙터에서 연결해서 쓰는 이유가 궁금합니당.. 재사용이나 이런거 떄문인가요?? 불러오기 같은 느낌으로 이해하면 될까요??
저도 뉴비인지라 설명이 힘든데, 모노비헤이비어를 상속받은 스크립트에 한해서 말하자면, 일단 이해하신 컴포넌트 방식을 간단하게 부품이라고 생각하시면 될 것 같아요. 컴포넌트라는 부품들을 결합해서 필요한 기능을 하는 게임오브젝트 객체를 만들어내는 것이고요. 게임오브젝트를 생성하면 무조건 트랜스폼이라는 컴포넌트가 붙는데 얘는 객체의 크기, 위치, 각도의 기능을 해요. 여기에 Sprite Renderer라는 컴포넌트를 붙이면 스프라이트를 보여주는 부품이 붙은 것이지요. 여기에 원하는 스프라이트를 끌어다 넣으면 스프라이트가 나오는 게임 내 공간에 존재하는 게임오브젝트가 되겠죠. 그런데 이것만으로는 보여주기만하지 다른 기능은 아무것도 없는 것이에요.
따라서 스크립트를 작성해서 그 게임오브젝트에 부착시키고, 해당 객체의 Transform과 Sprite Renderer을 참조해서 이동을 시킨다던지, Sprite Renderer에 보여주는 Sprite를 변경한다던지의 일을 할 수 있는 거에요. 여기서 빈 오브젝트에 스크립트를 붙이는 이유는 스크립트를 작성해봤자 그건 부품일 뿐이니 부품 하나로는 아무것도 할 수 없는 것이고요.
말씀하신대로 컴포넌트 방식으로 사용하면 각 객체에 필요한 기능을 붙였다 떼었다만 하면 되므로 재사용이 용이한 것이고요. 처음 C++ 공부할때 #include가 뭔지, print가 뭔지 이해하지 않은 상태로 Hello World를 출력하는 것처럼 차근차근 진행하다보면 이해하실테니 천천히 진행하면되는거에요
감사합니다!!! 두루뭉실하게라도 형태가 잡히는거같네요 덕분에
처음 봤는데 다 이해 되면 천재지ㅋㅋ 마음이 너무 급하신듯
ㅋㅋㅋㅋㅋ 첫술에 배부르고픈 맘이죠..
저도 이제 3개월차라 자세하게는 못알려드리지만 대충 제가 이해한거 알려드릴게요.
컴포넌트 = 오브젝트에 붙이는 성질. (ex 케이크 오브젝트에 컴포넌트 중력의영향을받음, 형태가 있음, 먹으면 맛있음, 오래두면 상함, 등등. 스크립트 = 유니티 내장 컴포넌트 제외하고 본인이 성질을 갖다 붙힐 때 씀. 예를들어 중력의영향을받음, 형태가 있음, 컴포넌트는 각각 Rigidbody, Sprite Render, Collider 같은 유니티 내장 컴포넌트로 해결가능, 하지만 먹으면 맛있음, 오래두면 상함, 같은 건 본인이 만들어야 하기 때문에 스크립트로 해당 내용을 만든 뒤 컴포넌트로 붙여서 성질을 만듦
하이어아키에 오브젝트 만들어서 스크립트 붙이는 이유 = 해당 오브젝트에 스크립트의 성질을 갖다 붙이기 위해서.
다들 너무 친절하셔라.. 감사합니다 많은 도움이 돼요
컴포넌트 패턴 공부해보세요. 유니티는 컴포넌트 패턴 위주예요. Monobehaviour 클래스 재사용성이 매우 뛰어나거든요. 그리고 Monobehaviour 라이프사이클 공부해야겠고요. 둘째) (인스펙터에서) 데이터 바인딩. 필드(변수)에 데이터(씬의 데이터나 파일) GUI에서 연결해주는 것이에요. =과 같다고 보면되요. GameManager gm = new GameManger() 처럼 해야하지만 = 뒷부분을 비주얼에디터에서 할 수 있게해주는 거죠. import는 using이라고 따로 있어요(C# 기초 '네임스페이스' 참고)
와 찾아보니깐 제가 어려워한 부분이 맞는거같아요 감사합니다~~
음.. 이런거 보면 무작정 따라하기보다 프로그래밍 부터 배우는게 더 효율적인거 같기도 하고
그르게요…