質問編集履歴

3

不要な説明削除。質問を見やすく修正。

2019/08/09 15:48

投稿

退会済みユーザー
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

不要な説明削除

2019/08/09 15:48

投稿

退会済みユーザー
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
- では、「objA.transform.localPosition」は「ローカル」という名前は付いているものの、
21
+ 「objA.transform.localPosition」は「ローカル」という名前は付いているものの、
40
22
 
41
23
  この「ローカル」とは「何に対するローカル」なのか、気になってきました。
42
24
 

1

不要なコード削除

2019/08/09 15:46

投稿

退会済みユーザー
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
  ```