场景:想要在vector未赋值时,才给vector赋值。
private Vector3 vector;
习惯做法:
if (vector == null)
{
vector = transform.position;
Debug.Log("vector " + vector);
}
出现问题:一直没有输出,没有进入if里面。
原因:Vector3 是struct ,不是class,不是存储内存地址,不能使用 == null的方法来判断
public struct Vector3 : IEquatable<Vector3>, IFormattable
解决:使用Equals
vector.Equals(default(Vector3))