我有名为“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,但它也不起作用!
答案 0 :(得分:2)
我刚遇到这个问题。
http://docs.unity3d.com/Manual/ScriptCompileOrderFolders.html
基本规则是,无法引用在当前版本之后编译的任何内容。 汇编的阶段如下:
阶段1:名为标准资产,专业标准资产和插件的文件夹中的运行时脚本。
第2阶段:名为编辑器的文件夹中的编辑器脚本,位于名为标准资产,专业标准资产和插件的顶级文件夹中的任何位置。
阶段3:所有其他不在名为Editor的文件夹中的脚本。
阶段4:所有剩余的脚本(即名为Editor的文件夹中的脚本)。
您的FPSController c#脚本位于标准资源文件夹中,这是在之前编译到另一个文件夹中的其他自定义c#脚本。
要解决此问题,您可以重命名标准资产'到另一个名称,或将此文件夹放入另一个文件夹或获取FPSController脚本并将其与您的其他脚本一起使用。 更好的解决方案是复制FPSController标准资产脚本并将其放入自定义文件夹,然后修改此脚本。
我试图将脚本的编译顺序更改为更好的解决方案,但它似乎没有用。这仅适用于Start()
和Awake()
的运行时间,我认为是在脚本之间。