본문 바로가기

TIL

(55)
23.11.14 ScriptableObject : 플레이어 위치 찾기 몬스터가 플레이어를 추적하는 기능을 만들 때 플레이어의 위치를 찾기위해서 Find 메소드를 사용하거나 GameManager같은 매니저가 플레이어를 미리 참조하고 있고 그걸 받아올 수 있지만, ScriptableObject를 사용하여 위치를 찾을수 있다. PlayerPosition.cs 플레이어의 위치를 필드로 가지는 ScriptableObject이다. using UnityEngine; [CreateAssetMenu(fmenuName = "PlayerPosition")] public class PlayerPosition : ScriptableObject { public Vector3 position { get; set; } } Player.cs 플레이어..
23.11.13 FSM : 유한상태머신 FSM(Finite State machine)은 다음과 같은 특징을 가집니다. 자신이 취할 수 있는 유한한 갯수의 상태들을 가진다 그 중에서 반드시 하나의 상태만 취한다 현재 상태는 특정 조건이 되면 다른 상태로 변할 수 있다 가능한 상태들의 집합과 각 상태들의 전이 조건으로 정의 될 수 있다 FSM을 사용하는 이유로는 가능한 상태들을 명확히 규정할 수 있다 상태 중복을 피할 수 있다 전이들을 명확하게 규정할 수 있다 따라서 기계의 동작을 분명하게 규정할 수 있다 FSM에 기반한 객체를 만든다면, 안정적인 작동을 보장할 수 있다 비동기 씬 로딩 비동기 씬 로딩을 위해서 SceneManager에서 LoadSceneAsync를 사용하면 구현 할 수있다. 유니티에서 Scene이 로드되면..
23.11.10 다음주 발표가 있어서 발표자료를 만들었습니다.
23.11.09 메인씬에 UIManager와 인벤토리, 창고 기능을 넣고, 저장기능을 합쳤는데 자잘한 오류가 발생하여 수정하였습니다.
23.11.08 장비 아이템 스크립트를 인벤토리와 창고에 맞게 다시 수정하였습니다.
23.11.07 인벤토리 제작이 끝나서 창고 기능을 제작하는데 인벤토리 스크립트를 재사용하여 만들기 위해서 인벤토리와 창고에서 공통으로 사용되는 기능을 빼서 스크립트를 따로 만들고 인벤토리 스크립트와 창고 스크립트가 상속받아서 각자의 기능을 구현하였다.
23.11.06 오늘은 휴대폰이 꺼져있어서 알람을 듣지 못해서 12시가 넘어서 일어났다. 창고 작업을 하는데 기존에 인벤토리 스크립트와 호환이 잘 되지 않아서 인벤토리 스크립트를 수정해서 공용으로 사용할 수 있게 하였다.
23.11.03 창고 스크립트를 구성하였는데, 인벤토리와 따로 스크립트를 만들어서 사용하였다.
23.11.02 인벤토리에 관한 기능을 완성해서 창고 UI를 구성하였다. 창고에 버튼을 넣어서 버튼을 통해서 여러 개의 창고를 이용할 수 있도록 하였다. 창고 1개에는 81종류의 아이템이 들어갈수 있게 하였다.
23.11.01 비동기적으로 씬 로딩하기 유니티에는 SceneManager라는 클래스가 존재하는데, 게임내 다양한 장면(Scene)을 관리하고 전환하는데 사용되는 유용한 도구입니다. 씬 이동 LoadScene을 사용하면 다른 씬으로 전환할 수 있습니다. 하지만 씬을 전환하기 위해서 Build에서 전환할 씬을 등록해야 합니다. using UnityEngine; using UnityEngine.SceneManagement; // 다른 장면으로 전환하기 SceneManager.LoadScene("씬 이름"); SceneManager.LoadScene(Scene Index); 비동기 씬 이동 using System.Collections; using System.Collections.Generic; using UnityEngin..