繁体   English   中英

我怎么能在统一中修复错误(cs0120)?

[英]How could i fix an error (cs0120) in unity?

在团结中,我试图按下一个按钮来提高玩家的速度。 但是,每次我运行它。 它给了我:

错误CS0120:非静态字段,方法或属性'PlayerController.speed'需要对象引用

我已经尝试过更改代码的顺序,所以我该怎么办?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Upgrader1 : MonoBehaviour
{

    void Start()
    {
        GameObject Player = GameObject.Find("Player");
        PlayerController PlayerController = Player.GetComponent<PlayerController>();
    }

    public void Upgrade1()
    {
        PlayerController.speed++;
    }
}
public class Upgrader1 : MonoBehaviour
{

PlayerController PlayerController; //It should be member variable

void Start()
{
    GameObject Player = GameObject.Find("Player");
    PlayerController = Player.GetComponent<PlayerController>();
}

public void Upgrade1()
{
    PlayerController.speed++;
}
}

使用适当的命名约定总是一件好事。

    PlayerController _PlayerController; 
void Start() {

     GameObject Player = GameObject.Find("Player"); 
     _PlayerController = Player.GetComponent<PlayerController>();

  } 

  public void UpgradeSpeed() // I changed the name according to its functionality 
  {
     _PlayerController.speed++; 
  }

有了这个,你就不会再错误地输入PlayerController类了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM