【问题标题】:set multiple floats in one variable?在一个变量中设置多个浮点数?
【发布时间】:2013-05-02 18:17:54
【问题描述】:

嘿,我看到有人这样做

//子弹是速度5,瞄准蒂米:

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

transform.position 是 Vector3(float x, float y, float z);

所以我认为我可以做到这一点

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

但它说:找不到类型或命名空间名称“float3”。您是否缺少 using 指令或程序集引用?

那么如何让一个变量取多个相同类型的值呢?

【问题讨论】:

标签: c# floating-point


【解决方案1】:

你有多种可能性。

你可以声明一个类(或结构):

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

【讨论】:

  • 我认为我最喜欢结构选项,因为它保留了 X、Y 和 Z 名称。
  • 我也更喜欢它,但它确实取决于您想要实现的目标:创建一个仅用于一次性使用的新类可能是矫枉过正。如果可变性和不强制长度不是问题,那么我会使用数组。否则,我更喜欢元组。
  • 好的,谢谢,我想也许 3 代表你想在一个变量中有多少个浮点数,你可以做任何数字,显然不是这样。如果这三个是我唯一的选择,我想我会选择元组,从来没有听说过这样总是很高兴尝试新事物。
  • 元组就像数据库中的一行,它可以有多种类型(它们不必都是同一类型),并且它像数组一样具有固定长度。
  • 是原生 C# 吗?我正在使用 Unity 并使用元组收到此错误:找不到类型或命名空间名称 Tuple3'。您是否缺少 using 指令或程序集引用?
猜你喜欢
  • 2019-11-07
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-07
相关资源
最近更新 更多