본문 바로가기

Study/Unity21

[Unity] 오일러 각과 짐벌락 오일러 각이란?- 3차원 상의 강체 (rigidbody, 외부의 힘에 변하지 않는 물체)의 방향과 회전을 정의하기 위해 만들어낸 각도- x, y, z 좌표를 뜻함 짐벌(Gimbal)이란?- 물체가 회전하도록 중심축을 가진 구조물 - 이 강체의 방향은 오일러 각도를 사용하여 세 번의 회전을 통해 얻을 수 있다. 짐벌락(Gimbal Lock)이란?오일러 각을 이용하여 회전시킬 때 x축 -> y축 -> z축 순으로 회전한다. (이렇게 순서대로 회전하기 때문에 오일러 각에서 세 개의 축 (x, y, z축)은 서로 종속적이다.) 이 때 먼저 회전한 축이 아직 회전하지 않은 축을 함께 회전시킨다.두 번째로 회전한 축의 회전 결과로 인해 첫 번째 축과 세 번째 축이 겹쳐지는 상황이 발생하는 것이다.따라서 아직 회전하.. 2024. 6. 28.
[Unity] HpBar 방향 수정 몬스터의 HP바가 시점이 바뀌더라도 항상 카메라를 쳐다보도록 구현하고 싶었다.그런데 코드를 짜보니 HP바가 위아래, 좌우로 불안정하게 흔들리는 현상이 발생했다.public class HPBarUI : MonoBehaviour{ [SerializeField] private GameObject hpBar; private Camera mainCamera; void Start() { mainCamera = Camera.main; } void Update() { RotateTowardsCamera(); } void RotateTowardsCamera() { Vector3 direction = (mainCamera.tran.. 2024. 6. 18.
[Unity] Serializefield & Property Serializefield - C# 스크립트에서 전역 변수를 선언할 때, public 으로 선언하면 바로 Inspector창에 나타난다.public bool IsAttaciking;  - 변수를 private 로 선언했을 때에도 Inspector창에 보여지게 할 때 Serializefield를 사용한다[Serializefield] private bool isAttacking;   이렇게 쓰면 위의 사진과 동일한 결과 나옴   그런데 자동 프로퍼티를 사용한 변수에 Serializefield 처리를 해주어도 Inspector창에서 보이지 않는 이슈가 발생하였다. 해결=> 자동 프로퍼티를 사용시 [field : Serializefield]로 선언해주어야 된다.[field : Serializefield] pub.. 2024. 6. 16.
[Unity] Photon 사용해보기 - 멀티플레이 게임 구현 Photon 초기 설정1. Photon 에셋 다운로드 PUN 2 - FREE | 네트워크 | Unity Asset StoreGet the PUN 2 - FREE package from Photon Engine and speed up your game development process. Find this & other 네트워크 options on the Unity Asset Store.assetstore.unity.com 요거 Import 해주기   2. Photon 사이트 가입2.1 회원가입하기 or 로그인하기 글로벌 크로스 플랫폼 실시간 게임 개발 | Photon EngineEssentialPhoton Details Discover a summary of our product range, notabl.. 2024. 6. 13.
[Unity] Photon Photon 이란? - Exit Games에서 개발한 멀티플레이어 게임 개발을 위한 네트워크 엔진   이중 Photon PUN2- 실시간 멀티플레이어 게임 개발 가능- CCU (Concurrent User, 동시 접속자 수) 증가에 따른 대응이 필요없다. (단, 유료로 이용시!)  주요 클래스 설명 1. PhotonNetwork 1.1 ConnectUsingSettings 메서드 PhotonNetwork.ConnectUsingSettings(); - 메서드 실행 시 앱이 포톤 클라우드에 연결.- PhotonNetwork.IsConnected를 통해 연결 상태 확인 가능  1.2 CreateRoom 및 JoinRoom 메서드PhotonNetwork.CreateRoom("RoomName");PhotonNet.. 2024. 6. 13.
[Unity] Particle System - 각각의 흰색 오브젝트들이 파티클이다.- 시간에 따른 시뮬레이션, 각 파티클의 위치, 속도, 수명, 색상, 크기 등의 정보를 저장하는 시스템- 최적화 -> 시스템의 최대 파티클 수를 제한하거나, 파티클의 적용 범위를 제한하는 등의 기능을 제공 컴포넌트 - Duration : 파티클 지속시간- Looping : 반복할건지- Start Delay : 몇 초 뒤에 실행할건지- Start Speed : 파티클의 초기 속도- Simulation Space : 파티클이 부모 오브젝트의 로컬에서 애니메이션화할지, 월드 공간에서 나타날지 등 설정 파티클 모듈 - 모듈을 체크하여 사용 가능- 각 모듈 프로퍼티의 더 자세한 설명은 아래 유니티 공식문서를 통해 확인할 수 있다. 파티클 시스템 모듈 - Unity 매뉴얼Pa.. 2024. 6. 12.
[Unity] Mixamo 애니메이션 적용법 1. Mixamo 사이트 방문 Mixamo www.mixamo.com  2. 내 캐릭터에 적용시키고 싶은 애니메이션 고르기  3. 내 캐릭터에 적용시키기  Upload Character 버튼을 누르고 Select Character File을 눌러 캐릭터 파일 업로드 조금 기다리면 내 캐릭터가 Upload 된다.  여기서 다운로드 버튼을 누르고  세팅을 설정해주면 끝! 여기서 Without Skin으로 다운로드 해준다.  그리고 유니티에서 몇가지 설정을 해주어야 파일이 잘 동작된다. 1. Rig -> Animation Type -> Humanoid 로 변경  2. Animation -> 아래로 스크롤 -> 애니메이션 밑을 확인 여기서 Root Transform Rotation, Position의 Bake .. 2024. 6. 3.
[Unity] AI Navigation 유니티는 AI Navigation을 활용하여 NPC가 인공지능을 활용해 움직일 수 있게 한다  Navigation Mesh-> 캐릭터가 움직일 수 있는 경로 Bake -> NavMesh 컴포넌트를 사용하여 구현 1. Hierarchy 창에서 경로를 넣을 오브젝트 선택 후 Bake 클릭 Agent Radius - 지형에 Agent가 얼마나 가깝게 다가갈 수 있는지Agent Height - Agent 가 다가갈 수 있는 공간의 높이Max Slope - Agent 가 걸어올라갈 수 있는 경사의 기울기Step Height - Agent 를 멈춰세우는 장애물의 높이 Min Region Area - 연결되지 않은 작은 내비메시 영역을 제거Manual Voxel Size - Voxel은 부피를 가진 픽셀이라는 뜻 -.. 2024. 5. 31.
[Unity] Mathf 외워두면 유용할 Mathf 함수들을 정리해보자Mathf.AbsMathf.Abs(float num)num에 대한 절댓값 반환 Mathf.ClampMathf.Clamp(value, minValue, maxValue)value가 minValue보다 작다면 value = minValuevalue가 maxValue보다 크다면 value = maxValue로 보정value가 minValue와 maxValue 사이의 값이면 보정하지 않는다  Mathf.Min & Mathf.MaxMathf.Min(a,b);Mathf.Max(a,b);a,b 중 더 작은값이나 큰 값 리턴 Mathf.Cell & Mathf.Floor & Mathf.RoundMathf.Cell(float num)Mathf.Floor(float num)Mat.. 2024. 5. 29.