점프대 만들기

유승아·2024년 5월 29일

내일배움캠프

목록 보기
52/69

무료 에셋을 사용해서 기존 강의와는 다르게 꾸며줬다.

이제 필요 없는 기능인 배고픔을 삭제하려고 한다.

PlayerCondition.cs

public class PlayerCondition : MonoBehaviour
{
    public UICondition uiCondition;

    Condition health { get { return uiCondition.health; } }
    // Condition hunger { get { return uiCondition.hunger; } }
    Condition stamina { get { return uiCondition.stamina; } }

    public float noHungerHealthDecay;

    void Update()
    {
        /*
        // hunger, stamina 지속적으로 값 변화시키기
        // Time.deltaTime -> 기기 성능 차이에 따라 값이 변화하는 속도가 다르기 때문에 일정하게 맞춰주기
        hunger.Subtract(hunger.passiveValue * Time.deltaTime);
        stamina.Add(stamina.passiveValue * Time.deltaTime);

        // hunger가 0보다 작아질 때 health 깎기
        if (hunger.curValue == 0f)
        {
            health.Subtract(noHungerHealthDecay * Time.deltaTime);
        }
        */

        // 체력이 0일 때
        if (health.curValue == 0f)
        {
            Die();
        }

    }

    public void Heal(float amout)
    {
        health.Add(amout);
    }

    /*
    public void Eat(float amout)
    {
        hunger.Add(amout);
    }
    */

    public void Die()
    {
        Debug.Log("죽었다!");
    }
}

UICondition.cs

public class UICondition : MonoBehaviour
{
    public Condition health;
    // public Condition hunger;
    public Condition stamina;

    // PlayerCondition.cs에서 Condition 값들을 계속해서 Update 시켜줄 것임

    void Start()
    {
        // uiCondition 스크립트 넣어주기
        CharacterManager.Instance.Player.condition.uiCondition = this;
    }
}

배고픔 관련 로직 주석처리 해주기
아직 삭제는 안 한 상태!

배고픔 UI 빼주고 꾸며주기


1. 점프대 만들기

JumpPad.cs

public class JumpPad : MonoBehaviour
{
    public float jumpForce = 10f;  // 점프할 때 가해지는 힘의 크기

    // 트리거가 아닌 충돌에서의 처리를 위해 OnCollisionEnter 사용
    private void OnCollisionEnter(Collision collision)
    {
        // 충돌한 오브젝트가 Rigidbody를 가지고 있는지 확인
        Rigidbody _rigidbody = collision.collider.GetComponent<Rigidbody>();
        
        if (_rigidbody != null)
        {
            // 위쪽 방향으로 순간적인 힘 가하기
            _rigidbody.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
        }
    }
}

👀 실행 결과


2. 점프맵 만들기

점프대를 여러 개 만들어서 위로 올라갈 수 있게 만들어 봤다.

👀 실행 결과

1.5배 재생

0개의 댓글