在Unity C#中从不同的脚本访问bool

本文关键字:脚本 访问 bool Unity | 更新日期: 2023-09-27 18:26:18

我有一个来自玩家移动控制脚本的bool变量(isGrounded),我想在另一个GameObject中访问它。

BallController.cs

public class BallController : MonoBehaviour {
    Transform myTrans;
    Rigidbody2D myBody;
    public bool isGrounded = true;
    public bool release = false;
}

重力牵引.cs

public class GravityPull : MonoBehaviour {
    public GameObject target;
    public int moveSpeed;
    public int maxdistance;
    private float distance;

    void Start ()
    {
        target= (GameObject.Find("Ball (1)"));
    }

    void Update ()
    {
        distance = Vector2.Distance (target.transform.position, transform.position);
        if (distance < maxdistance && target.isGrounded)
        {
             target.transform.position = Vector2.MoveTowards(target.transform.position, transform.position, moveSpeed * Time.deltaTime / distance);
        }
    }
}

如果我让我的目标成为GameObject,那么我可以使用.find找到它。但如果我这样做,我就无法访问bool。如果我将目标设为BallController,那么我可以访问bool,但不能使用.find来查找类。我也不能将GameObject转换为BallController。有人能告诉我我在这里做错了什么吗?

在Unity C#中从不同的脚本访问bool

target.getComponent<BallController>().isGrounded

这就足够了。