본문 바로가기

게임개발/Unity6

[Unity] JSON 이용하여 데이터 저장하기 JSON(JavaScript Object Notation)은 데이터를 교환하고 저장하기 위한  텍스트 기반 데이터 교환 표준이다. 사실 이러한 정의보다, 오늘 포스팅할 'JSON 파일을 이용해 Unity에서 데이터를 저장하고 불러오는 방법'을 알아보기 위해서는 다음 사항을 숙지하는 것이 더 중요하다. 1. JSON으로 만들 코드는 반드시 클래스 형식이어야 한다.2. Class를 string 형식의 JSON 파일로 변환하고, 해당 파일을 저장한 후, 다시 string 형식을 1.에서 정의한 class 형식으로 변환시켜 데이터를 복구한다. 이 포스팅에서는 플레이어 캐릭터의 좌표, 회전값, 레벨을 json 파일로 저장하고, 다시 불러오는 기능을 구현한 예제를 통해 JSON을 이용하여 데이터를 저장하고 불러오는.. 2024. 8. 28.
[Unity] GameObject의 이동(기본) Unity에서 GameObject를 이동시키는 방식에 대해 다룬다. 기본기이지만, 유닛들이 거의 움직이지 않는 게임들 위주로 만들고 연습하다 보니 쓸 일이 생각보다 없어서 따로 가볍게 정리해 놓는다. 1. Transform.Translate[SerializeField] private Vector3 directionalVector; [SerializeField] private float speed; private bool _isMoving = false; // Start is called before the first frame update void Start() { } // Update is called once per frame void Upda.. 2024. 6. 10.
[Unity] ScriptableObject 공식 홈페이지에 따르면, ScriptableObject는 클래스 인스턴스와는 별도로 데이터를 저장할 수 있는 데이터 컨테이너이며, 그 목적은 사본이 생성되는 것을 방지하여 메모리 낭비를 줄이는 것이다. 처음 이런 설명을 들었을 때는 잘 와닿지 않았는데, 다음 예시를 생각해 보자. 가령, 과일 아이템들을 만드려 하고, 과일 아이템은 각자 이름, 색깔, 가격, 아이템 등급 등의 정보를 지닌다고 하자. 이 때, 같은 종류의 과일 아이템끼리는 이 값들을 모두 동일하게 공유할 것이다. 이 값들을 ScriptableObject로 만들어 모든 사과 아이템들이 참조할 수 있는 reference로 삼는 것이다.  예시를 통해 살펴보도록 한다. 먼저, ScriptableObject를 생성한다.[CreateAssetMenu.. 2024. 6. 9.
[Unity] 게임오브젝트의 회전 x, y, z 축을 기준으로 물체의 회전 각도를 나타내는 방법을 오일러각(Euler Angle)이라고 한다. 그러나, Euler Angle로 물체를 회전시킬 때 Gimbal Lock 현상이 발생하는데, 축이 겹쳐지면서 제 기능을 못 하게 되는 현상이라고 한다. 우리가 Unity를 다루면서 알아야 할 것은 Euler Angle가 Gimbal Lock 문제를 내재하고 있기 때문에 Unity가 물체를 회전시킬 때 Quaternion을 사용하고, 따라서 우리는 Euler Angle을 Quaternion으로 바꾸어 사용해야 한다는 것이다. 1. Quaternion.Euler 값을 통해 Euler Angle을 Quaternion으로 변환.void RotateUsingTransform(){ gameObject... 2024. 6. 8.