728x90
728x90
Instantiate()는 유니티 내 게임오브젝트의 Clone(복제물)들을 생성하는 함수이다. 보통은 Prefab을 복제하는데 자주 사용되는데, Prefab은 프로젝트 진행 과정에서 만든 Asset이라고 보면 된다. 위 스크립트에서 "Fire1"은 마우스 좌클릭을 의미한다.(프로젝트 세팅 - Input Manager 참고) 즉, 플레이 모드에서 마우스 좌클릭을 해줄 때 마다 rocketPrefab이 생성되는 것이다. 하지만 플레이모드에서 보면 생성된 프리팹들이 rigidbody 중력값을 받아 생성되자 마자 떨어지게 된다. (하늘 방향으로 쏠 경우) 이런 경우, as Rigidbody를 추가하여 rigidbody 컴포넌트에 AddForce()함수를 적용하면 원하는 방향(하늘을 향해)으로 프리팹이 발사된 후..
유니티에는 크게 2가지 Data Type이 있는데 Value Type과 Reference Type으로 나뉜다. Value는 특정 값을 가지는 반면, Reference는 Value값이 저장된 메모리의 주소를 가진 형태이다. 이 두 가지 타입의 차이는 데이터를 copy할 때 나타나는데, Value타입은 변수를 복사한 후 복사본을 사용해도 원본 변수에 아무 영향을 미치지 못하지만, Reference타입은 복사 시 메모리 주소 전체를 가지여고 때문에 데이터 수정 시 원본에까지 영향을 미친다. Value Type의 경우, pos는 Vector3 데이터 타입이기 때문에 trasform.position 변수에 아무런 영향을 주지 못하고, 결과적으로 transform에도 변화가 없다. 스크립트를 적용 후 유니티에서 플..
Delta의 의미는 두 값의 변화(차이)라고 해석하면 된다. 시간(time) 변수에 대입해 보면 각각의 Update()된 값 또는 FixedUpdate() 값의 변화인데 보통 움직임의 증가/감소분을 smooth하게 만드는 역할을 수행한다. 움직이는 오브젝트가 매 프레임마다 이동이 된다면 부자연스럽게 끊김이 발생하지만 매 초 단위로 움직인다면 자연스러울 것이기 때문이다. 보통 speed, rotate와 같은 물리적 변화와 관련된 변수에 Time.deltatime을 곱하는 식으로 스크립트를 작성해준다.
유니티 GetAxis() 함수란? Input.GetAxis()는 GetAixs와 관련된 입력을 받아들여오는 명령어로, -1과 1 사이의 실수값을 리턴하고 기본적으로 0의 값을 가진 함수이다. 대표적으로 Horizontal과 Vertical에 대한 값을 받아올 수 있다. Horizontal : 좌우로(방향키 왼쪽/오른쪽) 움직이는 값을 받아옴 Vertical : 수직으로(방향키 위/아래) 움직이는 값을 받아옴 즉, Horizontal 값을 받아올 때 왼쪽 키를 누르면 0에서 -1로 값이 변하고, 오른쪽 키를 누르면 0에서 1로 값이 변하는 형식이다. GetAxis()함수와 GetAxisRaw() 함수 특징 비교 비슷한 함수로 Input.GetAxisRaw()가 있는데 둘의 차이점이 있다면, Input.Ge..
Destroy()는 특정 시간 동안 GameObject나 Component를 제거하는데 사용하는 함수이다. Input.GetKey(KeyCode.Space)는 스페이스바 키를 누를 경우 지정된 오브젝트가 게임 뷰에서 제거된다. Update() 함수 내 gameObeject를 destroy 해주면 게임오브젝트가 제거되지만, GameObject other을 public으로 선언해주고 인스펙터 스크립트 other에 원하는 오브젝트를 가져다 놓으면 씬 뷰에서 제거 대상을 자유롭게 바꿔줄 수 있다. Destroy(GetComponet())를 호출해 컴포넌트 자체를 제거할 수 도 있다. 추가적으로 Destroy(gameObject, 3f)와 같이 delay time을 설정해주면 함수 호출 시 3초 후에 오브젝트가 ..
LookAt()함수는 게임 오브젝트를 지정한 방향/오브젝트를 향해 trasform해주는 함수이다. 쉽게 말해서 특정 오브젝트가 target오브젝트를 바라보게 하는 함수인 것 RPG 게임 내에서 내 캐릭터와 적의 캐릭터가 가까워졌을 때 적 캐릭터가 내 캐릭터를 바라보게 만드는 기능을 수행 (적 캐릭터가 따라가거나 물리적 충돌을 일으키지는 않는다.) 또한 카메라에 LookAt()함수를 적용하면 지정된 오브젝트를 카메라가 따라가게 만드는 연출 효과를 만들 수 있다. Find()함수는 특정 오브젝트를 찾기 위해 쓰는 함수이다. 보통 GameObject.Find(string) 또는 GameObject.FindGameObjectWithTag(string) 형식으로 입력한다. 부모-자식 계층화를 통해 자식 오브젝트가..