2013-05-02 181 views
1

嘿,我看到有人做這個在一個變量中設置多個浮點數?

//子彈速度5,針對鄧肯:

float3 v = ((timmy.transform.position - transform.position).Normalized)*5; 
bullet.velocity = v; 

的transform.position是的Vector3(浮法X,浮法Y,浮動Z);

所以我想我能做到這一點

private float3 _position; 
public Food() 
{ 
    float3 position = _position(0.0f,0.0f,0.0f); 
} 

而是說:類型或命名空間名稱'FLOAT3' 找不到。你是否缺少using指令或程序集引用?

那麼我會如何讓一個變量採取同一類型的多個值?

+1

HTTP:/ /stackoverflow.com/q/4079451/335858 – dasblinkenlight 2013-05-02 10:14:34

+0

除非您使用庫,否則C#BCL中沒有'float3'。但你可以實現你的:http://www.codeproject.com/Articles/17425/A-Vector-Type-for-C – 2013-05-02 10:15:34

+0

相關:http://stackoverflow.com/q/8145279/335858 – dasblinkenlight 2013-05-02 10:17:22

回答

2

您有多種可能性。

可以聲明一個類(或結構):

public class float3 
{ 
    public float X { get; set; } 
    public float Y { get; set; } 
    public float Z { get; set; } 
} 

您可以使用數組:

private float[] _position; 
public Food() 
{ 
    _position = new[] {0.0f,0.0f,0.0f}; 
} 

或者你可以使用一個元組

private Tuple<float,float,float> _position; 
public Food() 
{ 
    _position = Tuple.Create(0.0f,0.0f,0.0f); 
} 
+1

我想我喜歡結構選項最好,因爲它保留了X,Y和Z名稱。 – Davio 2013-05-02 10:18:38

+0

我也更喜歡它,但它確實取決於你想實現的目標:創建一個新類只是一次性使用可能是矯枉過正。然後,如果可變性和長度的強制不是問題,我會與數組一起使用。否則,我更喜歡元組。 – Falanwe 2013-05-02 10:20:55

+0

好的謝謝,我想也許3代表你想在一個變量中有多少浮點數,並且你可以做任何數字,顯然不是這種情況。如果這三個是我唯一的選擇,我想我會去找這個元組,但從來沒有聽說過這樣的事,所以總是很高興嘗試新事物。 – Rottjung 2013-05-02 10:29:25