如何将 vector3 用作浮点变量?

How can i use vector3 as float variables?

在我做的脚本顶部:

public float setRandScaleXMin, setRandScaleXMax;
public float setTandScaleYMin, setTandScaleYMax;
public float setTandScaleZMin, setRandScaleZMax;

但这将创建 6 行。 我想做的是在检查器中:

setRandScaleXMin
setRandScaleXMax
setRandScaleYMin
setRandScaleYMax
setRandScaleZMin
setRandScaleZMax

为此,他们将在检查器中每两个变量显示一行:

setRandScaleXMin 10 setRandScaleXMax 111
setRandScaleYMin 12 setRandScaleYMax 22
setRandScaleZMin 11 setRandScaleZMax 15 

改为 6 行只有 3 行。

那么我是这样使用它的:

        float randScaleX = Random.Range(setRandScaleXMin, setRandScaleXMax);
        float randScaleY = Random.Range(setTandScaleYMin, setTandScaleYMax);
        float randScaleZ = Random.Range(setTandScaleYMax, setRandScaleZMax);

objInstance = Instantiate(objectToInstantiate, new Vector3(randX, yVal, randZ), Quaternion.identity);

我只是觉得我隐约明白你想说什么所以如果我错了请原谅我,但你正在寻找最小和最大 X、Y 和 Z。而不是在检查器中有六行window,你可以有两个:

public Vector3 MinRandScale;
public Vector3 MaxRandScale;

RandScaleMin 表示随机比例的最小 X、Y 和 Z 限制,RandScaleMax 表示随机比例的最大 X、Y 和 Z 限制。

编辑以显示如何使用 Random.Range():

Random.Range 有两个值:最小界限和最大界限。因此,您只需执行以下操作即可获得具有随机组件的 Vector3:

var randX = Random.Range(MinRandScale.x, MaxRandScale.x);
var randY = Random.Range(MinRandScale.y, MaxRandScale.y);
var randZ = Random.Range(MinRandScale.z, MaxRandScale.z);
var randVector3 = new Vector3(randX, randY, randZ);