
무료 에셋을 사용해서 기존 강의와는 다르게 꾸며줬다.
이제 필요 없는 기능인 배고픔을 삭제하려고 한다.
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 빼주고 꾸며주기
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);
}
}
}
👀 실행 결과

점프대를 여러 개 만들어서 위로 올라갈 수 있게 만들어 봤다.
👀 실행 결과
1.5배 재생