반응형 Unity/기본 공부4 유니티 컴포넌트 접근하기 유니티를 다루다보면 A플레이어 객체에 1스크립트가 있고 B몬스터 객체에 2스크립트가 있을때 2스크립트에서 A객체 혹은 1 스크립트에 접근할 필요가 생깁니다. 예를 들자면 전에 포트리스 모작을 만들었는데 그때 포탄이 플레이어와 AI객체에 접근할 필요가 있었습니다. 1. 객체의 이름으로 찾기 GameObject.Find는 하이어라키창에 존재하는 "A"객체를 찾는 함수입니다. 찾아서 이름을 B로 변경하는 코드로 시작하기 이전 A였던 오브젝트의 이름이 게임을 시작하자 B로 변경되는 것을 볼 수 있습니다. 위의 코드는 A객체를 찾은 뒤 그 객체가 가지고있는 Ascript 컴포넌트를 가져와서 Ascript 안에 선언된 함수나 변수에 접근이 가능합니다. 2. 객체의 들어있는 스크립트로 찾기 Ascript를 가지고있는.. 2022. 12. 1. 투사체 발사하기(Bullet) 슈팅게임이나 fps등의 게임을 처음 만들때 가장 먼저 드는 생각은 투사체를 어떻게 발사할까? 였습니다. 앞으로 보내고 충돌판정은 배웠는데 생성은 어떻게 하는가? 이동할때마다 바뀌는 발사위치를 어떻게 정해줄지에 대해 고민을 했고 발사 위치를 자식 객체로 빈 오브젝트를 생성하여 정해줬습니다. 이렇게 정해주면 부모객체(플레이어 객체)가 회전하더라도 포신과 빈오브젝트가 같이 회전하기때문에 항상 포신앞에서 총알이 생성될 것입니다. 하이어라키창에서 총알로 사용할 구체를 만들어준뒤 인스펙터창에서 사이즈를 조절하고 하이어라키창에 만든 Bullet을 하이어라키창에서 아래에 스크립트들이 있는 칸으로 드래그앤드롭을 하시면 프리펩으로 저장할 수 있습니다. 이후 Bullet이 앞으로 나가게 하기 위하여 Bullet에 넣어줄 스.. 2022. 12. 1. 유니티 충돌체크 객체가 특정 위치에 닿았는지 충돌 체크하는 것은 게임에서 많이 사용됩니다. 점프할때(지형에 닿고있는지) 피격당할때(캐릭터에 투사체가 닿았는지) 특정 장소에 도달 했는지 등등 빈번히 이뤄지기 때문에 충돌 체크 관련하여 정리하려고 합니다. 하이어라키창에서 기반이 될 지형과 충돌 체크할 객체를 생성하여 각각 콜라이더와 rigidbody를 달아주었습니다. 충돌 체크를 하기 위해서는 체크를 할 객체끼리 서로 콜라이더가 필요하고 충돌 체크를 할 객체가 rigidbody컴퍼넌트를 가지고 있어야 합니다. 충돌 체크를 할 객체에 충돌체크할 스크립트를 추가하여줍니다. private void OnCollisionEnter(Collision collision) { Debug.Log(collision.gameObject.tra.. 2022. 11. 30. 캐릭터 움직이기 유니티에서 캐릭터를 움직이기 위해서는 조종할 객체가 필요하다. 좌측 하이어라키(Hierarchy)창에서 마우스 우클릭을 누르고 움직일 객체를 만들어 줍니다. 저는 정육면체의 Cube를 만들었고 Move라는 스크립트를 만들어서 넣어줬습니다. 객체를 움직이는 방법은 여러가지인데 Rigidbody컴퍼넌트를 추가하여 Rigidbody를 이용하여 움직이거나 객체의 transform을 이용하여 움직이는 방법이 있습니다. 오늘은 transform.translate를 이용하겠습니다. transform.position은 맵에서 해당 오브젝트의 절대 좌표를 나타내고 Vector3를 대입하여 x,y,z축을 넣어주면 해당 방향으로 이동합니다. using UnityEngine; public class Move : MonoBeh.. 2022. 11. 30. 이전 1 다음 반응형