やりたいことは、ようするに複数のGameObjectの中心をPivotにしたいということでしょうか。矢印というのはマニピュレータのことですよね。UnityではゲームオブジェクトのPivotを変更できないそうなのでUnityで変更させるとしたらEmptyのGameObjectで代用することになります。
もう一つEmptyのGameObjectを用意してその台形の中心に置いて、台形の入ったEmpty GameObjectを子にすればいいと思います。手動でやるのが簡単ですが、ピッタリと中心にしたいのならスクリプトでやった方が確実です。
その台形がどういう構成かは分かりませんが、例えば4つのGameObjectから構成されているとして、それらの座標からスクリプトで中心を計算して、そこにEmpty GameObjectを移動させて4つのGameObjectの親の親にする例文を考えてみました。
親の親にするEmpty GameObjectにアタッチするスクリプトです。
C#
1using UnityEngine;
2
3public class ParentCenter : MonoBehaviour {
4
5 public GameObject go1;//4つのGameObject
6 public GameObject go2;
7 public GameObject go3;
8 public GameObject go4;
9
10 public GameObject group1;//4つのGameObjectが入っているEmpty GameObject
11
12 Vector3 posA;
13 Vector3 posB;
14 Vector3 posC;
15
16 void Start () {
17 posA = (go1.transform.position + go2.transform.position)/2;
18 posB = (go3.transform.position + go4.transform.position)/2;
19 posC = (posA + posB)/2;
20
21 transform.position = posC;//4つのGameObjectの中心座標に移動
22
23 group1.transform.parent = transform;//group1を子にする
24 }
25
26 void Update () {
27 transform.Rotate(1, 1, 0);//回転させる
28 }
29}
実行するとこんな感じです。
数が多くなれば配列などを使うなどするといいかもしれません。スクリプトで座標を割り出したら親の親に手動で設定するのもいいかと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/11 15:30