본문 바로가기

Unity46

UI / 오디오 / 최종빌드 UI를 만들면 자동으로 Canvas와 EventSystem이 생김 EventSystem은 UI 요소들에게 유저 입력(키보드, 마우스, 터치 등)을 받아서 전달해주는 역할을 함. 자동으로 작동하기 때문에 만질 필요 없음 Canvas는 UI 상의 좌표계랑 게임 상의 좌표계랑 다름. 게임 세상 = 3차원, UI = 2차원(사각형 영역의 오버레이로 표시됨) Canvas는 게임 화면과 1:1 대응됨 ( 게임 씬 크기 조정하면 캔버스도 자동으로 조정됨) 게임 세상과 관련 없고 화면 크기와 관련되어있음. Canvas는 UI를 위한 좌표계. 다시 말하면 UI 등의 모든 요소들은 Canvas안에 들어가야 함 Anchor Presets 그냥 누르면 안되고 alt 키 누르면서 마우스로 선택하기 Text size를 키우니 짤.. 2021. 7. 13.
싱글톤 디자인패턴: 프로그래머들 사이에서 공유되는 어떤 코드를 작성하는 방향. 싱글톤: 게임이나 메모리상에 단 하나만 존재, 언제 어디서든 접근 가능한 오브젝트를 만들 때 사용되는 디자인 패턴 예시: Ninja Obj들 중에서 NinjaKing을 찾고 싶을 때 static 변수에 NinjaKing을 만들고 그 안에 Naruto를 넣으면 NinjaKing이 누군지 하나씩 살펴볼 필요 없이 Sakura, Sasuke가 static NinjaKing 변수에 누가 들어있는지 보면 됨 싱글톤은 OO Manager 처럼 단 하나만 존재하고 모든 친구들이 손쉽게 쓸 수 있을 필요가 있는 오브젝트를 만들 때 씀. 예를 들어 몬스터는 여러개 있을 수 있지만 몬스터를 관리해주는 친구는 하나만 있으면 됨. 그러면 그 몬스터 매니저.. 2021. 7. 13.
인스턴스화 인스턴스화: 어떤 대상을 실존하는 무언가로 찍어낸다. 유니티에서 인스턴스화는 미리 만들어진 게임 오브젝트를 실시간으로 게임 도중에 찍어낸다는 의미. (ex. 총알, 몬스터) 보통 인스턴스 할 때 씬 상에 미리 존재하는 게임 오브젝트를 찍어내는게 아니라 게임 오브젝트를 미리 만들어놓고 필요할때마다 쓸 수 있는 프리팹을 사용해서 새로 찍어내게 됨 원하는 위치에 생성시킬 수 있음. GameObject말고 다른 타입으로도 가져올 수 있음. Rigidbody로 가져올 수도 있고 GameObject로 가져오면 따로 GetComponent 해줘야 함. 2021. 7. 12.
회전과 쿼터니언 rotation은 Vector3가 아니라 Quaternion이다! 위 식은 Vector3를 Quaternion으로 변환해주는 것. lookRotation : 해당 방향으로 바라보도록 Rotation 지정 lookRotation을 이용하여 큐브가 sphere를 바라보게 하기 : 목적지에서 시작점을 빼면 시작점에서 목적지로 가는 방향과 거리가 나옴 Lerp: 중간값 구하기 transform.Rotate : 현재 상태에서 Vector안의 값만큼 회전해줌 Quaternion은 Vector3로 값을 뱉어낼 수 있음 Quaternion에 .eulerAngles를 붙이면 vector로 반환해줌 그래서 vector3끼리 값을 더하고 마지막에 Quaternion으로 반환해줄 수 있음 Quaternion끼리 곱하면 값을 .. 2021. 7. 12.
평행이동과 좌표계 + 부모 자식 관계 평행이동을 하고 싶다면? 평행이동은 게임세상의 글로벌 좌표계가 아니라 자기 자신의 로컬 좌표를 기준으로 움직임 글로벌을 기준으로 하고 싶다면 뒤에 Space.World 붙이고 자기 자신으로 하려면 Space.Self Transform에 나오는 좌표는 로컬 스페이스를 기준으로 함. 로컬스페이스는 자기 자신의 부모에 상대적이고 나 자신의 회전에 상대적임. 부모 컴포넌트와 자식 컴포넌트 transform.position과 transform.localPosition transform.position : global 값 수정 transform.localPosition: 인스펙터 창에 보이는 local 값 수정 2021. 7. 12.
충돌처리(Tag, OnTriggerEnter, OnCollisionEnter) 충돌한 상대방을 어떻게 인식하는가? Tag! Tag란? 게임 오브젝트를 분류하는 방법 중 하나. Apply 누르면 같은 게임 오브젝트들에 일괄 적용 가능 충돌은 어떻게 감지하는가? 스크립팅 - 함수 추가(OnTriggerEnter) 트리거인 콜라이더와 충돌할 때 자동으로 실행 유니티가 Trigger인 Collider과 부딪칠 때 OnTriggerEnter라는 메시지를 자동으로 충돌한 물체들에게 뿌림. 따라서 우리는 어떻게 충돌을 캐치할까 고민할 필요가 없음. 철자만 맞춰서 OnTriggerEnter라는 함수만 잘 만들어주면 유니티가 자동으로 이 친구를 발동시켜줌 또 충돌한 상대방을 끼워넣어줌(Collider other) 따라서 함수에 충돌하면 어떤 처리 할것인가만 함수에 넣어주면 됨. Collision은.. 2021. 7. 3.