他のオブジェクトの回転を変数として取得して、同じ方向に回してみましょう。
グリーンのCubeを回転させれば、それに合わせてブルーのCubeも回転します。
関連記事:
他のオブジェクトのScaleを取得してサイズ変更
他のスクリプトの変数を取得する
他のスクリプトの関数を実行する方法
他のマテリアルを変数として取得する
Resources.Loadを使ったファイル指定
Cubeを2つ作成して横並びにし、グリーンとブルーのマテリアルをつけます。
それぞれGreenCubeと、BlueCubeに名前を変更しました。
ゲームビューではこのように配置されています。
CubeRotate.csを作成し、GreenCubeに追加します。
SameRotate.csを作成し、BlueCubeに追加します。
グリーンのCube(変数を取得される側)
CubeRotate.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeRotate : MonoBehaviour { public float direction; public GameObject blueCube; void Start() { direction = 0; blueCube = GameObject.Find ("BlueCube"); } void Update() { if(Input.GetKey("right")) { direction += 0.5f; transform.Rotate(0, direction, 0); blueCube.GetComponent<SameRotate>().RightRotate(); } if(Input.GetKeyUp("right")) { direction = 0; } if(Input.GetKey("left")) { direction -= 0.5f; transform.Rotate(0, direction, 0); blueCube.GetComponent<SameRotate>().LeftRotate(); } if(Input.GetKeyUp("left")) { direction = 0; } } } |
ブルーのCube(変数を取得する側)
SameRotate.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class SameRotate : MonoBehaviour { GameObject greenCube; CubeRotate cubeRotate; void Start() { greenCube = GameObject.Find ("GreenCube"); cubeRotate = greenCube.GetComponent<CubeRotate>(); } public void RightRotate() { transform.Rotate(0, cubeRotate.direction, 0); } public void LeftRotate() { transform.Rotate(0, cubeRotate.direction, 0); } } |
ゲームプレイして、左右キーで動かしてみましょう。
グリーンの回転を変数として取得し、それをブルーの回転として利用しています。
関連記事:
他のオブジェクトのScaleを取得してサイズ変更
他のスクリプトの変数を取得する
他のスクリプトの関数を実行する方法
他のマテリアルを変数として取得する
Resources.Loadを使ったファイル指定