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# 矢量3:变量作为坐标_C#_Unity3d - Fatal编程技术网

C# 矢量3:变量作为坐标

C# 矢量3:变量作为坐标,c#,unity3d,C#,Unity3d,变量作为矢量3坐标。。。 这是绘制四边形和光线的空游戏对象上脚本的一部分。 我可以画四边形,也可以画光线。我可以通过在矢量3中键入floats来手动移动光线。为什么我不能用“planeWidth”或“planeHeight”来代替矢量3中的数字? 我在定义“public Vector3 rayA1Pos…”行时出错 仅举一个使用示例,这是有效的: rayA1=新光线(transform.position+新矢量3(0f,150f,0f),transform.forward) 但为什么这不起作用:

变量作为矢量3坐标。。。 这是绘制四边形和光线的空游戏对象上脚本的一部分。 我可以画四边形,也可以画光线。我可以通过在矢量3中键入floats来手动移动光线。为什么我不能用“planeWidth”或“planeHeight”来代替矢量3中的数字? 我在定义“public Vector3 rayA1Pos…”行时出错

仅举一个使用示例,这是有效的: rayA1=新光线(transform.position+新矢量3(0f,150f,0f),transform.forward)

但为什么这不起作用:

    rayA1 = new Ray(transform.position + rayA1Pos, transform.forward);
还是这个

ray1 = new Ray(transform.position + new Vector3(planeWidth, planeHeight, 0f), transform.forward)
再一次,当我将“planeWidth”和“planeHeight”放在矢量3坐标中时,它们会抛出错误。
谢谢你的阅读。这是我的第一个罐子,但我在这个论坛上找到了很多很酷的东西,所以我已经欠亚尔一个巨大的感谢!Tom G.

我相信您会遇到以下错误:

字段初始值设定项不能引用非静态字段、方法或 财产

不能使用变量在全局范围内以所需的方式初始化其他变量。您必须将
平面宽度
平面高度
更改为静态。通常在类构造函数中进行初始化。在使用MonoBehavior的Unity3D中,您通常使用
Start()
Awake()
方法执行此操作

改为这样做:

public float planeWidth = 24f;
public float planeHeight = 34.5f;
public Vector3 rayA1Pos;

void Start()
{
   rayA1Pos = new Vector3((planeWidth/2), (planeHeight/2), 0f);
}

你好你得到了什么错误?是的,那是错误,你的建议已经删除了它!那么,这是一个“范围”问题,高于其他问题?非常感谢。我仍然有一个问题,那就是如何让光线从正确的位置发出,但是我想让你知道你帮了很大的忙。你可以说这是一个范围问题。下次请记住写错误消息,因为它将帮助其他人更快地发现问题。很高兴我能帮忙!
public float planeWidth = 24f;
public float planeHeight = 34.5f;
public Vector3 rayA1Pos;

void Start()
{
   rayA1Pos = new Vector3((planeWidth/2), (planeHeight/2), 0f);
}