Unity 6

NGUI TweenScale(UITweener.cs)의 Reset과 Play

NGUI를 사용하면 아래와 같이 From -> To로 Scale 값을 조정 할 수 있는 기능이 있습니다. 이 Tween Scale을 Script에서 관리하고 싶은 경우에 대해서 알아보겠습니다. Tweener의 상태를 수동으로 재설정 하는 함수입니다. public void ResetToBeginning () { mStarted = false; mFactor = (amountPerDelta < 0f) ? 1f : 0f; Sample(mFactor, false); } 프로세스를 수동으로 활성화하고 필요한 경우를 되돌리는 함수입니다. public void Play (bool forward) { mAmountPerDelta = Mathf.Abs(amountPerDelta); if (!forward) mAmount..

Unity 2021.01.19

A*를 활용한 문제 해결 사례

문제. 유저를 추적하는 AI가 있습니다. 이 AI는 유저를 추적 할 때 그 공격경로에 오브젝트가 있으면 오브젝트를 피해가며 추적을 해야합니다. 또한 유저가 엘리베이터를 타고 2층으로 올라갔을 시 근처 엘리베이터를 찾은 후 따라가야 합니다. 하지만 AI의 Character Controller 내 Move 함수를 사용하니 유저를 추적하는 과정에서 문제가 생겼습니다. 이 문제를 해결하기 위한 방법을 모색하다가 NavMeshAgent와 A* Algorithm을 사용하기로 했습니다. 사진 = 코드박스로 수정 예정 전체적인 코드 구조도 다시 수정할 예정.

Unity 2019.11.25

Linecast 를 활용한 문제 해결 사례

문제. 유저를 추적해서 공격을 하는 AI가 있습니다. 이 AI는 유저를 공격 할 때 그 공격경로에 오브젝트가 있으면 오브젝트를 피한 뒤 공격을 해야합니다. 하지만 유저와 AI의 위치 값으로만 공격을 설정하다보니 아래 사진과 같은 문제가 발생하였습니다. 이 문제를 해결하기 위한 방법을 모색하다가 Physics의 Cast들을 보다는 LineCast를 사용하기로 했습니다. 해결방법 if(Phycis.Linecast(TransH, playerTrans, out hitInfo, 1

Unity 2019.11.18

Unity 물체 이동 방법

1. transform.Position을 활용하기 transform.position += new Vector3(speed * TIme.deltaTime, 0, 0); 이 방법으로는 오브젝트에 방향을 지정해서 옮겨 줄 수 있음 transform.position = Vector3.MoveTowards(transform.position, target.position, speed * Time.deltaTime); 이 방법으로는 총알이 유도탄 처럼 플레이어를 따라가게 됩니다. 2. transform.Translate를 활용하기 transform.Translate(new Vector3(speed * Time.deltaTime, 0, 0)); 이 방법으로는 position+= 방법과 유사하게 이동합니다. Vector..

Unity 2019.11.04

Unity Preview Camera 만들기.

Cursor.visible = false; Cursor.lockState = CursorLockMode.Locked; 마우스를 가두기 위한 스크립트. 1. Cursor.visible = Cursor bool visible // true = 켜짐, false = 꺼짐 2. Cursor.lockState = CursorLockMode.Confined; // 게임 창 밖으로 마우스가 안감 3. Cursor.lockState = CursorLockMode.Locked; // 마우스를 게임 중앙 좌표에 고정시킴 4. Cursor.lockState = CursorLockMode.None; // 마우스커서 정상 [Header("마우스 감도")] public float mouseSpeed = 90; [Header("이..

Unity 2019.10.28