为什么我的播放器的 Rigidbody2D 不会被我的 Conveyer 移动?

问题描述 投票:0回答:0

我有一个脚本,它获取任何与之碰撞的刚体并使用 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;
    }

}

这是我的盘子里的东西: Image of plate's Components

这是我的播放器包含的内容: Image of Player's Components

如果有人需要更多信息,请索取。我愿意展示解决此问题所需的一切 如果我是个白痴,请在你告诉我之前帮助我

我尝试过使用不同的移动方式(使用变换)和检测碰撞(OnTriggerStay2D),但这些都不起作用。我期待刚体被移动但它没有☹

c# unity3d
© www.soinside.com 2019 - 2024. All rights reserved.