从另一个脚本访问一个脚本中的方法

时间:2016-10-19 19:11:01

标签: c# unity3d

我有一对我用C#编写的脚本,其中一个脚本从另一个脚本调用一个方法。但是,我收到以下错误:

Member 'PlayerActions.Attack()' cannot be accessed with an instance reference; qualify it with a type name instead

这是我要调用的方法所在的位置:

public class PlayerActions:MonoBehaviour{
    public static void Attack(){
        Debug.Log("Attacking");
    }
}

这是我试图调用方法的地方:

public class Combat:MonoBehaviour{
    PlayerActions playerActions;
    void Start(){
        playerActions = GetComponent<PlayerActions>();
        playerActions.Attack();
    }
}

两个脚本都附加到同一个游戏对象。

有谁能告诉我如何修复上面提到的错误以及为什么我实际上收到错误?我一直认为你需要引用你试图访问的类,但是根据我的理解,这个错误就是说明了。

1 个答案:

答案 0 :(得分:5)

删除static修饰符,您的代码就可以使用了!

public class PlayerActions:MonoBehaviour{
    public void Attack(){
        Debug.Log("Attacking");
    }
}