ClickClick 2024-05-08 오후 1_02_22.png

사과(플레이어가 걷는 것을 구현)

public class ApplePlayer : MonoBehaviour
{
    public Rigidbody2D rb;
    public float moveSpeed;
    public Transform tr;
    public Animator ani;
    private void Update()
    {
        float horizopntalInput = Input.GetAxis("Horizontal");
        if (horizopntalInput < 0)
        {
            rb.velocity = new Vector2(horizopntalInput * moveSpeed, rb.velocity.y);
            tr.localScale = new Vector3(-1, 1f, 1);
            ani.Play("Move");
        }
        else if(horizopntalInput > 0)
        {
            rb.velocity = new Vector2(horizopntalInput * moveSpeed, rb.velocity.y);
            tr.localScale = new Vector3(1, 1f, 1);
            ani.Play("Move");
        }
        else
        {
            ani.Play("Idle");
        }
    }
}
  1. public Rigidbody2D rb;: Rigidbody2D 컴포넌트를 저장하는 변수입니다. Rigidbody2D는 오브젝트의 물리적 특성을 제어합니다.
  2. public float moveSpeed;: 플레이어의 이동 속도를 나타내는 변수입니다.
  3. public Transform tr;: Transform 컴포넌트를 저장하는 변수입니다. Transform은 오브젝트의 위치, 회전 및 크기를 제어합니다.
  4. public Animator ani;: Animator 컴포넌트를 저장하는 변수입니다. Animator는 애니메이션을 제어합니다.
  5. private void Update(): Unity에서 프레임마다 호출되는 함수로, 플레이어의 입력을 감지하고 이동 및 애니메이션을 업데이트합니다.
  6. float horizopntalInput = Input.GetAxis("Horizontal");: 수평 입력 값을 받아옵니다. "Horizontal"은 키보드의 좌우 화살표 키나 A/D 키와 연결됩니다.
  7. if (horizopntalInput < 0) { ... } else if (horizopntalInput > 0) { ... } else { ... }: 입력 값에 따라 플레이어를 좌우로 이동하거나 정지시킵니다. 음수 값은 왼쪽 방향, 양수 값은 오른쪽 방향을 나타냅니다.
  8. rb.velocity = new Vector2(horizopntalInput * moveSpeed, rb.velocity.y);: Rigidbody2D의 속도를 설정합니다. 입력 값에 이동 속도를 곱하여 플레이어를 움직입니다. 수직 방향의 속도는 유지됩니다.
  9. tr.localScale = new Vector3(-1, 1f, 1);tr.localScale = new Vector3(1, 1f, 1);: Transform의 스케일을 변경하여 플레이어가 이동하는 방향에 따라 좌우를 반전시킵니다.
  10. ani.Play("Move");ani.Play("Idle");: Animator를 사용하여 "Move" 및 "Idle" 애니메이션을 재생합니다. 이동 중일 때는 이동 애니메이션을, 정지 상태일 때는 정지 애니메이션을 재생합니다.

ClickClick 2024-05-08 오후 3_20_21.png

플레이어가 블루베리에 닿을 때 스토리진행을 구현

public class Bye : MonoBehaviour
{
    public ByeText byeText;
    public void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.CompareTag("Player"))
        {
            byeText.gameObject.SetActive(true);
        }
    }
}
  1. public ByeText byeText;: ByeText 타입의 변수 byeText를 선언합니다.
  2. public void OnTriggerEnter2D(Collider2D collision): Unity에서 제공하는 OnTriggerEnter2D 메서드를 사용하여, 트리거 영역에 다른 Collider2D가 진입할 때 호출되는 함수를 정의합니다.