teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

質問者コメントを受けて参考画像、スクリプト、動画へのリンクを追記しました。

2018/04/25 16:41

投稿

negitama
negitama

スコア943

answer CHANGED
@@ -1,1 +1,38 @@
1
- 基点にしたい位置に空のゲームオブジェクトを配置し、そのオブジェクトの位置とキューブとの相対座標を取るのが簡単だと思います。
1
+ 基点にしたい位置に空のゲームオブジェクトを配置し、そのオブジェクトの位置とキューブとの相対座標を取るのが簡単だと思います。
2
+
3
+
4
+ ### 質問者コメントを受けて追記
5
+
6
+ 空のゲームオブジェクトを基点とする位置に置きます。下図はシーンビューでの表示。
7
+ ![イメージ説明](40b1f7b09ec356b017ea47e861ae18b7.jpeg)
8
+
9
+ スクリプトは以下のような感じ。
10
+ ```C#
11
+ using UnityEngine;
12
+
13
+ public class RelativePostion : MonoBehaviour
14
+ {
15
+ // インスペクターから指定する
16
+ public Transform basePoint; // 基点となるゲームオブジェクトのTransform
17
+ public Transform movingCube; // 動かすCube
18
+
19
+ private void Update ()
20
+ {
21
+ Debug.Log ( RelativePos () );
22
+ }
23
+
24
+ // 相対座標を返す
25
+ private Vector2 RelativePos ()
26
+ {
27
+ // Cube と 基点となるオブジェクトとの相対座標
28
+ var relativePos = movingCube.position - basePoint.position;
29
+
30
+ return relativePos;
31
+ }
32
+ }
33
+ ```
34
+
35
+ 参考動画です。(※ 上記コードはUI表示に関する内容を含みません)
36
+ [動画はこちら](https://twitter.com/onionslice2/status/989180123520712707)
37
+
38
+ 以上です。