본문 바로가기
게임 개발

[Unity] The Love 게임 - (1)

by chobbo 2024. 6. 4.

와이어프레임 및 게임 기획안

 

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