10月, 2015 のアーカイブ

UnityでスクリプトからTransformを弄る際、transform内の値をリセットする事がちょくちょく有ります。特にSetParent()等をの後に多い気がします。

 

同じ処理を何度も描くのはいやになってきたので、流用出来るリセット処理を描いてみました。と言ってもやる事は簡単です。

 

まず、Transform拡張用のstaticクラスを用意し、その中にLocalとWorldの値をリセットするメソッドを追加します。纏めて記載します。

 


public static class TransformExtension
{
public static void ResetLocal(this Transform transform)
{
transform.localPosition = Vector3.zero;
transform.localRotation = Quaternion.identity;
transform.localScale = Vector3.one;
}

public static void ResetWorld(this Transform transform)
{
transform.position = Vector3.zero;
transform.rotation = Quaternion.identity;
}
}

 

これでローカルをリセットしたい時はtransform.ResetLocal()、

ワールドをリセットしたい時はtransform.ResetWorld()を呼び出せば値をリセット出来ます。