質問編集履歴
3
不要な説明削除。質問を見やすく修正。
test
CHANGED
File without changes
|
test
CHANGED
@@ -23,28 +23,6 @@
|
|
23
23
|
この「ローカル」とは「何に対するローカル」なのか、気になってきました。
|
24
24
|
|
25
25
|
|
26
|
-
|
27
|
-
自分がlocalPositionに関して認識していることは下記です。
|
28
|
-
|
29
|
-
```
|
30
|
-
|
31
|
-
・localPositionはインスペクタで表示される位置座標。
|
32
|
-
|
33
|
-
・localPositionは親オブジェクトからの相対座標。
|
34
|
-
|
35
|
-
```
|
36
|
-
|
37
|
-
あんまり「ローカル」の意味を成していないように思えます。
|
38
|
-
|
39
|
-
それとも、「親オブジェクトからの相対座標」という意味で「ローカル」なのでしょうか?
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
今回はobjAはルートオブジェクトにしたので、ワールド座標の位置が出力されました。
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
何か単純で重要なことを見落としている気もするのですが、
|
48
26
|
|
49
27
|
objA.transform.positionを、InverseTransformPointを使って、
|
50
28
|
|
2
不要な説明削除
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,25 +18,7 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
下記ログを取ってみました。
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
```C#
|
26
|
-
|
27
|
-
Debug.Log(objA.transform.localPosition);
|
28
|
-
|
29
|
-
Debug.Log(objA.transform.InverseTransformPoint(objA.transform.position));
|
30
|
-
|
31
|
-
```
|
32
|
-
|
33
|
-
異なる座標が出力されるのを確認しました。
|
34
|
-
|
35
|
-
InverseTransformPointの方に関しては、
|
36
|
-
|
37
|
-
objAのローカル座標におけるobjAの位置なので、常に原点(0, 0, 0)になるはずなので、納得の出力結果です。
|
38
|
-
|
39
|
-
|
21
|
+
「objA.transform.localPosition」は「ローカル」という名前は付いているものの、
|
40
22
|
|
41
23
|
この「ローカル」とは「何に対するローカル」なのか、気になってきました。
|
42
24
|
|
1
不要なコード削除
test
CHANGED
File without changes
|
test
CHANGED
@@ -112,36 +112,6 @@
|
|
112
112
|
|
113
113
|
```C#
|
114
114
|
|
115
|
-
Vector3 viewport = Camera.main.WorldToViewportPoint(this.transform.position);
|
116
|
-
|
117
|
-
Vector3 viewMin = new Vector3(0.0f, 0.0f,viewport.z);
|
118
|
-
|
119
|
-
Vector3 viewMax = new Vector3(1.0f, 1.0f,viewport.z);
|
120
|
-
|
121
|
-
Vector3 worldMin = Camera.main.ViewportToWorldPoint(viewMin);
|
122
|
-
|
123
|
-
Vector3 worldMax = Camera.main.ViewportToWorldPoint(viewMax);
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
Vector3 localMax = this.transform.InverseTransformPoint(worldMax);
|
128
|
-
|
129
|
-
Vector3 localMin = this.transform.InverseTransformPoint(worldMin);
|
130
|
-
|
131
|
-
```
|
132
|
-
|
133
|
-
これで、ゲームオブジェクトのローカル座標における画面の境界の
|
134
|
-
|
135
|
-
左下の点がlocalMin、右上の点がlocalMaxで取得できているはずなのですが(間違っていたらご指摘お願いします)、
|
136
|
-
|
137
|
-
今のゲームオブジェクトの座標がこの画面境界内にあるかどうかを判定するにはどういったコードを書けばよいですか?
|
138
|
-
|
139
|
-
下記では、違うような気がします。
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
```C#
|
144
|
-
|
145
115
|
localMin.x < this.transform.localPosion.x < localMax.x
|
146
116
|
|
147
117
|
```
|