해결된 질문
작성
·
160
답변 2
1
강의를 작성할때 이왕이면 한번에 여러 개념을 추가하지 않기 위해서 노력하는데요.
사실 우선 사용하지 않으면 코드가 작성이 안되어서 어떤 강의에서는 나중에 설명을 하겠다고
넘어가는 부분이 있습니다. 그리고 이전 C# 강의에서 generic 을 사용하지 않았을까 싶은데요.
-------
공부할때 여러가지 방법이 있는데요 우선 앞에 있는 내용을 매일매일 숙지하시면서 가시는 방법이 있고요.
(초반에는 이렇게 해야 합니다 앞에 설명한 내용을 뒤에서는 많이 설명하지 않기 때문이거든요.)
-----
아니면 두번째로 우선 한번 쭉 보시고 이해하실수 있는 것은 이해하시고 넘어가시는 것도 방법이 될수도 있고요.
답변으로는 빅캣님이 말하셨지만 다시 말씀드리면요.
gameObject 라는 변수는 유니티의 모노비헤이버라는 클래스가 지원하고 있는 스크립트가 부착된 실제 게임오브젝트의 참조입니다. 현재 게임오브젝트를 가르키는 변수죠.
그리고 AddComponent 는 유니티에서 지원하는 함수인데 저희가 보통 지금까지 드래그를 통해서 스크립트를 추가했는데요. AddComponent 함수를 통해서 원하는 스크립트를 바로 추가할수 있게 코드에서 지원하는 기능입니다.
gameObject.AddComponent<TestScript>(); 를 하면 테스트 스크립트가 추가되고요.
gameObject.AddComponent<AddScript>(); 를 하면 AddScript 오브젝트에 추가됩니다.
답변이 되셨기를 바라고요. 혹시 궁금하시면 더 말씀해주세요 좋은 밤 되시고요. 감사합니다.
1
지나가는 학생이지만 아는 범위 내에서 답변 드려봅니다.
gameObject 는 해당 Object를 가져오기 위해 유니티에서 제공하는 get 프로퍼티입니다.
원래 object를 가져오기 위해 Get함수 등을 사용하여야 하지만
gameObject를 하면 해당 object를 가져올 수 있습니다.
예를 들면 ship 오브젝트에 연결된 shipScript컴포넌트가 있다고 봅시다
shipScript 에서 gameobject 를 치면 바로ship 오브젝트를 의미합니다.
또 enemy 오브젝트에 enemyScript가 있다고 합시다
enemy에서 ship에 접근하려면 enemyScript에서
이때 public GameObject ship; 정의하고 ship오브젝트를 연결 시켜줍니다.
여기서ship의 오브젝트에 접근 할 수 있습니다.
GameObject에 접근하는 방식은 여러가지 이며 위의 예시는 그 중 하나 입니다.
AddComponent는 의미 그대로 컴포넌트를 추가 한다는 의미 입니다.
컴포넌트는 유니티 에디터에서 추가 할 수도 있고
AddComponent를 통해서 코드에서 추가 할 수 있습니다.
gameobject.AddComponent<Sound>();
gameobject.AddComponent<GameObject>();
gameobject.AddComponent<PlayerControllerScript>();
등등 내가 만든 컴포넌트부터 유니티에서 제공되는 컴포넌트 온갖것을 필요에 따라 추가 할 수 있습니다.
<> 는 제네릭 문법입니다.
일종의 사용자 정의의 데이터(컴포넌트)를 사용할 수 있도록 미리 정의된 함수나 클래스입니다.
그렇게 어려운 문법은 아니지만 막상 제작하려고 하면 멍할 것입니다.
일단 기본 문법을 가볍게 훓어보시고 기존에 있는 코드나 튜토리얼에 익숙해지는 것이 중요합니다.
그리고 여러번 학습하시면 안보이던 것들이 자연스럽게 단계별로 보이게 됩니다.