스크린샷
구현/개선한 사항
적 캐릭터 개선
- Mixamo에서 3D 모델 및 애니메이션을 다운받아 적용함
//실제 코드는 아닌, 동작 방식을 설명하기 위한 간이 코드임
private void ChangeCoroutine(IEnumerator nextCoroutine)
{
if (currentCoroutine != null)
StopCoroutine(currentCoroutine);
currentCoroutine = StartCoroutine(nextCoroutine);
}
Start()
{
StartCoroutine(CoroutineIDLE());
}
CoroutineIDLE()
{
//.....
StartCorutine(CoroutineRun());
}
CoroutineRun()
{
//.....
StartCorutine(CoroutineAttack());
}
...
- 근접 공격형 적 유형 추가
- Enemy Spanwer 추가
커스텀 마우스 포인터 구현
- 기존 마우스 포인터 대신, Texture2D 기반의 마우스 포인터로 교체
- 마우스포인터를 이용하여 사격가능/재장전 중 상태를 구분할 수 있도록 함
기타 플레이 개선
- 마우스를 캐릭터와 겹쳐서 댈 경우, 플레이어 캐릭터가 기울어지던 현상 수정
IEnumerator CharacterMoveMent()
{
while(true)
{
float horizon = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
Vector3 Movement = new Vector3(horizon, 0.0f - transform.position.y, vertical) * pSpeed;
charController.Move(Movement);
// 마우스가 향하는 방향으로 캐릭터 회전
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
Vector3 targetPosition = new Vector3(hit.point.x, 1.0f, hit.point.z);
Quaternion rotation = Quaternion.LookRotation(targetPosition - transform.position);
transform.rotation = Quaternion.Lerp(transform.rotation, rotation, Time.deltaTime * 10.0f);
//Fix : X축 회전을 고정하여 마우스포인터가 캐릭터와 근접할시 캐릭터가 상하로 기울어지는 현상 해결
Vector3 euler = transform.rotation.eulerAngles;
euler.x = 0;
transform.rotation = Quaternion.Euler(euler);
}
yield return new WaitForSeconds(0.01f);
}
}
추후 구현/개선 사항
- 무기 UI 수정 및 인벤토리 기능 구현
- 아이템 엔티티 구현 / 아이템 습득 기능 구현
- Player Character도 기존 임시 모델에서 3D 모델로 변경할 것