본문 바로가기
개발/C#

유니티 C# 2d 플랫포머 플레이어 발판 같이 움직이는 방법 간단 구현

by SPNK 2024. 2. 26.
반응형

코드 작성

using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    private Rigidbody2D playerRb;
    private bool isOnMovingPlatform = false;
    private Transform currentPlatform;

    void Start()
    {
        playerRb = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        // 플레이어가 움직이는 플랫폼 위에 있는지 확인
        if (isOnMovingPlatform)
        {
            // 플레이어를 플랫폼과 함께 움직이도록 조정
            Vector3 platformVelocity = currentPlatform.GetComponent<Rigidbody2D>().velocity;
            playerRb.velocity = new Vector2(platformVelocity.x, playerRb.velocity.y);
        }
    }

    void OnCollisionEnter2D(Collision2D collision)
    {
        // 플레이어가 움직이는 플랫폼과 충돌하는지 확인
        if (collision.gameObject.CompareTag("MovingPlatform"))
        {
            isOnMovingPlatform = true;
            currentPlatform = collision.transform;
        }
    }

    void OnCollisionExit2D(Collision2D collision)
    {
        // 플레이어가 움직이는 플랫폼을 떠났는지 확인
        if (collision.gameObject.CompareTag("MovingPlatform"))
        {
            isOnMovingPlatform = false;
            currentPlatform = null;
        }
    }
}
반응형

댓글