transform.InverseTransformPointは引数で渡したオブジェクトの相対的なローカルな座標がわかる関数らしいです。
???
相対的?いまいちわからん(^_-)-☆
たとえば、シーン上にPlayerとEnemyとその子であるEnemyChildがあったとして、
下記のようにスクリプトを作って
Playerにアタッチすると、
Playerの座標を原点としたEnemyChildの座標がわかるみたいですよ( ^^) _U~~
EnemyChildをPlayerの子にした場合のローカル座標とも言い換えられますね。たぶん。
public class Test : MonoBehaviour { public GameObject enemyChild; //Enemyの子オブジェクト Vector3 enemyChildLocalPos; //Playerから見たEnemyChildeの座標を保存する変数 void Update() { EnemyChildSearch(); } void EnemyChildSearch() { enemyChildLocalPos = transform.InverseTransformPoint(enemyChild.transform.position); Debug.Log(enemyChildLocalPos); } }
実行してみると・・・
EnemyChildの座標がPlayerの位置からVector3(5, 1, 7)の位置にあるのが分かります。
PlayerのX座標を0から5ずらしてみると、、、
EnemyChildの座標も(0, 1, 7)と変化しています。
これはPlayerがEnemyChildの真正面に移動したため、X座標が0になったからですね(^_-)-☆
これ理解するのにかなり苦戦しました。。。
自分のプログラミングセンスねー( ;∀;)
おわり