Unity C# 在脚本之间调用时无法使我的函数正常工作



我已经阅读了大量的教程,但无法做到这一点。是的,我是新来的,所以这可能很明显。 我已经读到我应该努力保持我的代码独立和简单。因此,我试图在单独的脚本上编写我的函数,然后将它们调用到我的主玩家移动脚本中,但无济于事。 但无论出于何种原因,当我按下播放时没有任何反应。 请帮助我,请原谅我的无知。

此致敬意

脚本 1

public class Movement : MonoBehaviour
{
public float speed = 5f;
public Vector2 move;
public Run run;
public Walk walk;

void Update()
{
walk.Walki();
run.Sprint();
}

脚本 2

public class Walk : MonoBehaviour
{
Rigidbody2D rb;
float speed;
public Vector3 move;
private void Awake()
{
rb = GameObject.Find("Player").GetComponent<Rigidbody2D>();
speed = GameObject.Find("Player").GetComponent<Movement>().speed;
}
public void Walki()
{
float mLeft = 1f;
float mRight = -1f;
Vector3 move = new Vector3(mLeft, mRight, 0f);
if (Input.GetAxisRaw("Horizontal") > 0)
{
rb.transform.position += new Vector3(mLeft, 0f, 0f) * speed * Time.deltaTime;
}
if (Input.GetAxisRaw("Horizontal") < 0)
{
rb.transform.position += new Vector3(mRight, 0f, 0f) * speed * Time.deltaTime;
}
}
void Update(){
gameObject.GetComponent<Walk>().Walkie();
}

你可以尝试这样调用它,并在你的Warkie方法中编写一个Debug.Log("walks"(。

最新更新