質問: unityのTransform.TransformPointメソッドについてしつもんです。 例えばオブジェクトAがあります。 そのワールド座標は(0,0,0)でscaleが(10,10,10)とします。 オブジェクトAでTransform.TransformPoint(1,0,0) とした場合返り値が(10,0,0);となったのですがこれはなぜですか? リファレンスには返される位置情報はスケールに影響されていることに注意してくださいとかいてありましたが、 別にオブジェクトAでTransform.TransformPoint(1,0,0)の返り値が(1,0,0)のほうがわかりやすいと思うのですが・・・・・ なぜこの返り値は(1,0,0)にscaleの値(10,10,10)を乗算した値になるのでしょうか? なぜスケールの影響を受けさせる必要があるのでしょうか?
回答: 該当のPointが **ワールド空間でどこにあるか** を返すメソッドだからですね。 例えば、元のサイズが `2, 2, 2` のBoxが原点にあったとして、それの右上奥の点の位置は `1, 1, 1` になりますよね。 そしてスケールをそれぞれ10倍した場合、前述の点はどこにありますか? `10, 10, 10` になりますよね。 なので、スケールの値を考慮した値にしないと求めたい位置(Point)が求まらないわけですね。