「Unity/3d/回転」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→オブジェクト内の子オブジェクトのグローバル座標が、0となるように、親オブジェクトを動かす方法) |
(→オブジェクト内の子オブジェクトのグローバル座標が、0となるように、親オブジェクトを動かす方法) |
||
行18: | 行18: | ||
GameObject childObj = GameObject.Find("Child").transform.gameObject; | GameObject childObj = GameObject.Find("Child").transform.gameObject; | ||
GameObject parentObj = GameObject.Find("Parent").transform.gameObject; | GameObject parentObj = GameObject.Find("Parent").transform.gameObject; | ||
− | parentObj.transform. | + | Vector3 parentPointLocalPosition = parentObj.transform.InverseTransformPoint(childObj.transform.position); |
− | + | parentObj.transform.localPosition = parentPointLocalPosition; | |
− | + | parentObj.transform.rotation = childObj.transform.rotation; | |
− | + | ||
− | + | ||
− | parentObj.transform.rotation = childObj.transform. | + | |
</pre> | </pre> | ||
オブジェクトのstaticにチェックが入っていると動かないので、注意。 | オブジェクトのstaticにチェックが入っていると動かないので、注意。 |
2024年5月12日 (日) 01:20時点における版
transform.localRotation = new Vector3(0, 0.5f, 0); //こちらでなく transform.localRotation = new Quaternion(0, 0.5f, 0, 0); // こちらでもなく(x, y, z, w) transform.localRotation = Quaternion.Euler(0, 0, 180f);// こちらを(x, y, z) 0 ~ 360fまで
参考:https://spi8823.hatenablog.com/entry/2015/05/31/025903
角度を追加する
本来の角度に180度を追加
enemyObj.transform.localRotation *= new Quaternion(0f, 180f, 0f, 0f);
360度表記の角度取得
transform.localRotation.xではなく、transform.localEulerAngles.x
オブジェクト内の子オブジェクトのグローバル座標が、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にチェックが入っていると動かないので、注意。