从FirstPersonController访问另一个脚本

时间:2016-03-24 19:59:47

标签: c# unity3d unity5

抱歉我的英语!

我有名为“MYJoystick.cs”的脚本:

 public class MYJoystick : MonoBehaviour 
 {
     public static string myX;
 }

我想从“FirstPersonController.cs”中统一访问“myX”。我想在FirstPersonController的Update中写这个:像这样:

 private void Update()
 {
      MYJoystick.myX += 1;
 }

但它说“当前上下文中不存在名称`MYJoystick”。

我该如何解决这个问题?我应该在FirstPersonController中添加Using?用什么?统一中的默认命名空间是什么?我也尝试为我的脚本添加Namespace,但它也不起作用!

1 个答案:

答案 0 :(得分:2)

我刚遇到这个问题。

http://docs.unity3d.com/Manual/ScriptCompileOrderFolders.html

  

基本规则是,无法引用在当前版本之后编译的任何内容。   汇编的阶段如下:

     

阶段1:名为标准资产,专业标准资产和插件的文件夹中的运行时脚本。

     

第2阶段:名为编辑器的文件夹中的编辑器脚本,位于名为标准资产,专业标准资产和插件的顶级文件夹中的任何位置。

     

阶段3:所有其他不在名为Editor的文件夹中的脚本。

     

阶段4:所有剩余的脚本(即名为Editor的文件夹中的脚本)。

您的FPSController c#脚本位于标准资源文件夹中,这是在之前编译到另一个文件夹中的其他自定义c#脚本。

要解决此问题,您可以重命名标准资产'到另一个名称,或将此文件夹放入另一个文件夹或获取FPSController脚本并将其与您的其他脚本一起使用。 更好的解决方案是复制FPSController标准资产脚本并将其放入自定义文件夹,然后修改此脚本。

我试图将脚本的编译顺序更改为更好的解决方案,但它似乎没有用。这仅适用于Start()Awake()的运行时间,我认为是在脚本之间。