[Unity] 유니티 Editor 만드는 방법 #if UNITY_EDITOR //단축기 사용방법만든는 방법 % (Ctrl), # (Shift), & (Alt) [MenuItem("Tools/GenerateMap %#g")] static void HelloWord() { if (EditorUtility.DisplayDialog("Hello World", "Create?", "Create", "Cancel")) { new GameObject("Hellow World"); } } #endif Unity 2022.11.14
[Unity2D] Collision(충돌) 위치 받는 방법 TileBase - Tilemap에 들어가는 오브젝트 public Tilemap _tilemap; public TileBase _tile; void Start() { _tilemap.SetTile(new Vector3Int(0, 0, 0), _tile); } void Update() { List blocked = new List(); foreach (Vector3Int pos in _tilemap.cellBounds.allPositionsWithin) { TileBase tile = _tilemap.GetTile(pos); if(tile != null) blocked.Add(pos); } } Unity 2022.11.14
[Unity] API 호출 방법 public class WebManager : MonoBehaviour { enum Method { POST, GET, UPDATE, DELETE } string _baseUrl = "https://localhost:44351/api"; void Start() { TestResult res = new TestResult() { UserName = "tkddls", Score = 1, }; SendPostRequest("ranking", res, (uwr) => { Debug.Log("post 호출"); }); SendGetAllRequest("ranking", (uwr) => { Debug.Log("get 호출"); }); } public void SendPostRequest(string url, obj.. Unity 2022.11.08
[Unity][방법][팁] Conditional사용하여 로그(LOG)사용하기 Debug Log 구문 제거하기 Log 구문, 특히 Update, LateUpdate 또는 FixedUpdate에 있는 Log 구문은 성능을 낮출 수 있습니다. 빌드를 만들기 전에 Log 구문을 비활성화하세요. 이 작업을 보다 쉽게 하려면 프리 프로세서 지시문과 함께 조건부 속성을 만드는 것이 좋습니다. 예를 들어 다음과 같은 커스텀 클래스를 만듭니다. public static class Logging { [System.Diagnostics.Conditional("ENABLE_LOG")] static public void Log(object message) { UnityEngine.Debug.Log(message); } } Player Settings -> Player -> Other Settings 커.. Unity 2022.10.20
[Unity][팁, 방법] 애니메이션 파라미터 사용하지 않고 소스 제어 아래와 같이 파라미터가를 사용하지 않고 소스 제어 방법 1. Play사용하기 public PlayerState State { get { return _state; } set { _state = value; Animator anim = GetComponent(); switch (_state) { case PlayerState.Die: anim.Play("WAIT"); break; case PlayerState.Idle: anim.Play("WAIT"); break; case PlayerState.Moving: anim.Play("RUN"); break; case PlayerState.Skill: anim.Play("ATTACK"); break; } } } 2. CrossFad사용하기 CrossFad인자값 .. Unity 2022.10.13
[Unity][방법] AI 길찾기 사용방법 AI 창 설정 방법 Windows -> AI -> Navigation Max slope - 기울기 Bake 버튼 - 성정 값으로 적용 오브젝트에 AI 적용방법 컴포넌트 Nav Mesh Agent 추가 Unity 2022.10.10
[Unity][방법] 애니메이션 파라미터 조건으로 사용하기 wait -> run 실행방법 1. 선클릭 2. Greater은 ~보다큰 이기 때문에 value값을 0으로 하면 0보다 크다면 조건이며 0보다 크다면 run이 실행 된다. run -> wait 실행방법 Less는 ~보다작은 이기 때문에 1보다 작으면 wait이 실행된다. void Start() { Animator _animator = gameObject.GetComponent(); _animator.SetFloat("speed", 1); } Unity 2022.10.06
[Unity][방법] Status패턴 방법 1. enum으로 상태값 정의 2. 상태에 따른 함수 정의 3. 상태만 변경해서 사용 float wait_run_ratio; PlayerState _state = PlayerState.Idle; public enum PlayerState { Die, Moving, Idle, } void UpdateDie() { } void UpdateMoving() { Vector3 dir = _destPos - transform.position; if (dir.magnitude < 0.0001f) { _state = PlayerState.Idle; } else { float moveDist = Math.Clamp(_speed * Time.deltaTime, 0, dir.magnitude);//clamp는 시작 값 끝값.. Unity 2022.10.06
[Unity][방법] 에니매이션 합성하여 호출하는 방법 1. Animator 창에서 우클릭 2. motion 추가 3. 2개의 합성된 애니메이션 사용시 조절 파라미터 생성 4. 합성 애니메이션 소스에서 호출 (Mathf.Lerp는 부드러운 움직임을 위해) if (_moveToDest) { wait_run_ratio = Mathf.Lerp(wait_run_ratio, 1, 10.0f * Time.deltaTime); Animator anim = GetComponent(); anim.SetFloat("wait_run_ratio", wait_run_ratio); anim.Play("WAIT_RUN"); } else { wait_run_ratio = Mathf.Lerp(wait_run_ratio, 0, 10.0f * Time.deltaTime); Animator a.. Unity 2022.10.06
[Unity][팁] 유용한 Math함수 Mathf.Lerp(wait_run_ratio, 1, 10.0f * Time.deltaTime);//서서히 변하게 Math.Clamp(_speed * Time.deltaTime, 0, dir.magnitude);//clamp는 시작 값 끝값에 대한 거리값 덮어써줌 Unity 2022.10.05