facebook twitter hatena line email

「Unity/3d/グローバルとローカル座標変換」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「==サンプル== <pre> // ローカル座標をグローバル座標を Vector3 parentPointGlocalPosition = parentObj.transform.TransformPoint(childObj.transform.localPos...」)
 
(サンプル)
 
行6: 行6:
 
Vector3 parentPointLocalPosition = parentObj.transform.InverseTransformPoint(childObj.transform.position);
 
Vector3 parentPointLocalPosition = parentObj.transform.InverseTransformPoint(childObj.transform.position);
 
</pre>
 
</pre>
 +
 +
参考:https://nekojara.city/unity-transform-point
  
 
==オブジェクト内の子オブジェクトのグローバル座標が、0となるように、親オブジェクトを動かす方法==
 
==オブジェクト内の子オブジェクトのグローバル座標が、0となるように、親オブジェクトを動かす方法==

2024年5月12日 (日) 03:16時点における最新版

サンプル

// ローカル座標をグローバル座標を
Vector3 parentPointGlocalPosition = parentObj.transform.TransformPoint(childObj.transform.localPosition);
// グローバル座標をローカル座標に
Vector3 parentPointLocalPosition = parentObj.transform.InverseTransformPoint(childObj.transform.position);

参考:https://nekojara.city/unity-transform-point

オブジェクト内の子オブジェクトのグローバル座標が、0となるように、親オブジェクトを動かす方法

GameObject childObj = GameObject.Find("Child").transform.gameObject;
GameObject parentObj = GameObject.Find("Parent").transform.gameObject;
Vector3 parentPointLocalPosition = parentObj.transform.InverseTransformPoint(childObj.transform.position);
parentObj.transform.localPosition = parentPointLocalPosition;
parentObj.transform.rotation = childObj.transform.rotation;

オブジェクトのstaticにチェックが入っていると動かないので、注意。