반응형
코드 작성
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;
}
}
}
반응형