와이어프레임 및 게임 기획안
UML
오늘의 Task
1. Condition 스크립트 작성.
using UnityEngine;
using UnityEngine.UI;
public class Condition : MonoBehaviour
{
public float CurValue;
public float MaxValue;
public float StartValue;
public float RegebRate;
public Image UiBar;
private void Start()
{
CurValue = StartValue;
}
private void Update()
{
UiBar.fillAmount = GetPercentage();
}
public void Add(float amount)
{
CurValue = Mathf.Min(CurValue + amount, MaxValue);
}
public void Subtract(float amount)
{
CurValue = Mathf.Max(CurValue - amount, 0.0f);
}
public float GetPercentage()
{
return CurValue / MaxValue;
}
}
강의 코드와 다르게 작성할 부분이 없었다.
2. Enemy 부모 클래스 작성.
using UnityEngine;
using UnityEngine.AI;
public enum AIState
{
Idle,
Walk,
Attack
}
public class Enemy : MonoBehaviour
{
[SerializeField] protected EnemyData data;
protected Condition health;
protected Animator animator;
protected NavMeshAgent agent;
[Header("Detect")]
[SerializeField] protected float detectionRange;
[SerializeField] protected LayerMask playerLayer;
protected void Start()
{
health = GetComponent<Condition>();
agent = GetComponent<NavMeshAgent>();
animator = GetComponent<Animator>();
}
protected virtual void Die()
{
for (int i= 0; i< data.DropItem.Length; i++)
{
Instantiate(data.DropItem[i], transform.position + Vector3.forward * 2, Quaternion.identity);
}
Destroy(gameObject);
}
}
내일 AI Navigation 만져보면서 많이 수정할 예정이다.
4개의 몬스터 모두 AI Navigation을 사용하므로 상세한 공격 부분만 각 몬스터 스크립트에서 작성하고
Enemy.cs에 공통된 부분을 작성해야할 것 같다.
3. 적 프리팹 4개 애니메이션 확인 & 뼈대코드 작성
총 네개의 몹 기본세팅을 완료했다.
애니메이션도 연결해두고 트리거와 bool값도 다 작성해뒀다.
코드는 내일의 내가 쓰겠지
4. 맵 작성 & NavMesh Bake
시간을 제일 많이 썼다.
AI Navigation을 구현하려면 일단 맵을 Nav Mesh로 구워야되는데
우리 팀이 준비한 에셋이 Terrian을 사용해 그린 맵이라
결국 새로 맵을 만들었다..
Terrian - Paint Trees로 그린 오브젝트들이
충돌은 일어나지 않는데, 맵 Bake시 Walkable로 구워지지도 않았기 때문에
맵을 구운 이후 잔디나 꽃을 심어주었다.
기타 나무나 오브젝트들은 직접 맵에 배치하고
나중에 Nav Mesh Obstacle 컴포넌트를 붙여 구현할 것이다.
'게임 개발' 카테고리의 다른 글
[Unity] The Love 게임 - (3) (0) | 2024.06.07 |
---|---|
[Unity] The Love 게임 - (2) (0) | 2024.06.05 |
[Unity] 3D-Dungeon - 움직이는 발판 (0) | 2024.05.30 |
[Unity] 3D-Dungeon (0) | 2024.05.28 |
[Unity] BrickOutGame - 완성 (0) | 2024.05.23 |