2017-05-27 36 views
0

在腳本中我做的頂部:我如何使用vector3作爲浮點變量?

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); 

回答

2

我只覺得我隱約明白你想說什麼,所以請原諒我,如果我錯了,但是您正在尋找X,Y和Z的最小值和最大值。您可以在檢查器窗口中顯示六行而不是六行:

public Vector3 MinRandScale; 
public Vector3 MaxRandScale; 

RandScaleMin表示隨機比例的最小X,Y和Z限制,RandScaleMax表示您的隨機比例的最大X,Y和Z限制。 enter image description here

編輯要展示如何使用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); 
+0

我該如何在Random.Range和Instantiate中使用它?它不會接受Vector3而不是3參數2. –

+0

我編輯我的問題,我如何使用Random.Range以及如何使用實例化,然後將其更改爲Vector3。 –

+1

我編輯了我的問題以包含如何使用Random.Range,但您似乎已經先編輯了您的問題。那麼你的問題現在解決了嗎?你能把這個標記爲已回答嗎? – Marc