Luk*_*ner 5 c# generics math unity-game-engine
在C#泛型上寻求帮助.我在Unity3D工作,并且正在滚动BiLerp函数,因为Unity3D没有.
public Vector3 BiLerp(Vector2 _uv, Vector3 _00, Vector3 _01, Vector3 _10, Vector3 _11)
{
return _00 * (1 - _uv.x) * (1 - _uv.y) +
_10 * _uv.x * (1 - _uv.y) +
_01 * _uv.y * (1 - _uv.x) +
_11 * _uv.x * _uv.y;
}
Run Code Online (Sandbox Code Playgroud)
但是,我想让这个功能更加强大.
如果还有其他建议,请随意.我现在只在C#工作了6个星期,可以使用任何建议.
虽然通过传入一个执行乘法的委托来实现这项工作是可能的,但它会慢得多.我实际上认为你最好不要写多个重载.
是的你应该,你也应该把它放到静态类中.(恕我直言!)我打算建议你把它作为一个扩展方法,但是在反射时它有太多的参数使它变得有用.
C#consts类似于C++ consts,但普遍的共识是它们应该只是私有的(或者可能是内部的).
实际上,Vector2和Vector3是结构,因此它们按值传递.如果您想通过引用传递它们,请使用ref关键字:
public Vector3 BiLerp(
ref Vector2 _uv, ref Vector3 _00, ref Vector3 _01,
ref Vector3 _10, ref Vector3 _11)`
Run Code Online (Sandbox Code Playgroud)但是,这样做只有两个原因(对于结构):
因为您想要更改传入的原始值.
通过仅传递引用(即C++术语中的指针)来加速它.
第一个不适用于你的代码,第二个对于这样的小结构似乎毫无意义(实际上,所有结构都应该很小,因此它几乎不适用于设计良好的结构).
| 归档时间: |
|
| 查看次数: |
1538 次 |
| 最近记录: |