Vector3を複製しましょう。
複製する必要が無いケース
Transform.positionから値を取得する場合はVector3を複製する必要はありません。
1 2 3 4 5 6 |
Vector3 v1 = transform.position; Vector3 v2 = transform.position; v1.x = 100; print(v1); print(v2); //v1とv2のxの値は異なる |
Transform.positionから値を取得する際は、新たにインスタンスを生成して渡してくれるので、そもそもVector3を複製する必要はありません。
複製したい場合
拡張メソッドでClone関数を作りましょう。
1 2 3 4 5 6 7 |
public static class Extend { public static Vector3 Clone(this Vector3 vec) { return new Vector3(vec.x, vec.y, vec.z); } } |
使う際は下のようなかんじで使います
1 2 3 4 |
void sample(Vector3 vec) { Vector3 tmp=vec.Clone(); } |
以上です。コピーして使ってください。