我有一个脚本,它获取任何与之碰撞的刚体并使用 MovePosition 移动它。该脚本适用于我的 Plate 对象,但不适用于我的播放器。
这是脚本:
using UnityEngine;
public class ConveyerBelt : MonoBehaviour
{
public Vector2 Direction;
public float moveSpeed;
bool colliding;
Collider2D OtherCollider;
Rigidbody2D OtherRB;
void Start()
{
}
// Update is called once per frame
void Update()
{
if(OtherCollider.GetComponent<Rigidbody2D>() != null)
{
OtherRB = OtherCollider.GetComponent<Rigidbody2D>();
}
if (colliding)
{
OtherRB.MovePosition(OtherRB.position + (Direction * moveSpeed * Time.fixedDeltaTime));
print("ConveyerBelting");
}
}
private void OnTriggerEnter2D(Collider2D collision)
{
colliding = true;
OtherCollider = collision;
}
private void OnTriggerExit2D(Collider2D collision)
{
colliding = false;
}
}
如果有人需要更多信息,请索取。我愿意展示解决此问题所需的一切 如果我是个白痴,请在你告诉我之前帮助我
我尝试过使用不同的移动方式(使用变换)和检测碰撞(OnTriggerStay2D),但这些都不起作用。我期待刚体被移动但它没有☹