コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】LayoutGroup の子オブジェクトの transform.position を参照すると最初のフレームだけ違う数値が返ってくる

概要

f:id:baba_s:20180726160909p:plain

Canvas 内に LayoutGroup が存在して

f:id:baba_s:20180726160920p:plain

その子オブジェクトの transform.position を

using UnityEngine;

public class Example : MonoBehaviour
{
    private void Update()
    {
        var t = GetComponent<RectTransform>();
        Debug.Log( t.position );
    }
}

上記のようなスクリプトで参照すると

f:id:baba_s:20180726161019p:plain

最初のフレームだけ違う数値が返ってきます

f:id:baba_s:20180726161145p:plain

最初のフレームも transform.position の正しい数値を取得したい場合は
LayoutGroup のチェックを外しておく必要があります