Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从另一个脚本访问一个脚本中的方法_C#_Unity3d - Fatal编程技术网

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

C# 从另一个脚本访问一个脚本中的方法,c#,unity3d,C#,Unity3d,我有一对用C编写的脚本,其中一个脚本从另一个脚本调用一个方法。但是,我得到了以下错误: 无法使用实例引用访问成员“PlayerActions.Attack”;改为使用类型名称限定它 下面是我要调用的方法所在的位置: public class PlayerActions:MonoBehaviour{ public static void Attack(){ Debug.Log("Attacking"); } } 下面是我尝试调用该方法的地方: public cla

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

无法使用实例引用访问成员“PlayerActions.Attack”;改为使用类型名称限定它

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

public class PlayerActions:MonoBehaviour{
    public static void Attack(){
        Debug.Log("Attacking");
    }
}
下面是我尝试调用该方法的地方:

public class Combat:MonoBehaviour{
    PlayerActions playerActions;
    void Start(){
        playerActions = GetComponent<PlayerActions>();
        playerActions.Attack();
    }
}
两个脚本都附加到同一个游戏对象

有谁能告诉我如何修复我上面提到的错误,以及为什么我会得到这个错误?我一直认为您需要引用您试图访问的类,但据我所知,此错误是另一种情况。

删除静态修饰符,您的代码将正常工作

public class PlayerActions:MonoBehaviour{
    public void Attack(){
        Debug.Log("Attacking");
    }
}
删除静态修饰符,您的代码将正常工作

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

为什么不试着扔掉静态修改器呢?公开无效攻击是-照它说的做。使用类型名而不是实例,因为它是一个静态方法。@CùĐứ芝加哥ế你发表评论的时候,我做得很对,它修复了它。如果你愿意,回答这个问题,我会把它标记为接受。你为什么不试着扔掉这个静态修饰符呢?公开无效攻击是-照它说的做。使用类型名而不是实例,因为它是一个静态方法。@CùĐứ芝加哥ế你发表评论的时候,我做得很对,它修复了它。如果你愿意,回答这个问题,我会把它标记为接受。