触れた相手と同じScaleになるように、スクリプトを作ってみましょう。
2倍サイズのCubeにぶつかれば、自分も2倍の大きさに変わります。
ぶつかった別オブジェクトのScaleを、自身のサイズにも適用させるようにします。
関連記事:
他のオブジェクトのScaleを取得してサイズ変更
キー操作でオブジェクトのサイズを変える
触れた相手と同じScaleを適用
CubeとPlane(平面)を作成し、CubeのYを0.5にして地上に配置します。
Cubeにリジッドボディを追加します。
Cubeにマテリアルをつけて、わかりやすく表示します。
もう一つCubeを作成し、名前をCube2に変更。
スケールと座標を変更します。
ゲームビューではこのように配置されています。
CubeScale.csを作成し、Cubeに追加します。
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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeScale : MonoBehaviour { void Update() { if (Input.GetKey(KeyCode.UpArrow)) { transform.Translate(0f, 0f, 0.1f); } if (Input.GetKey(KeyCode.DownArrow)) { transform.Translate(0f, 0f, -0.1f); } if (Input.GetKey(KeyCode.LeftArrow)) { transform.Translate(-0.1f, 0f, 0f); } if (Input.GetKey(KeyCode.RightArrow)) { transform.Translate(0.1f, 0f, 0f); } } private void OnCollisionEnter(Collision collision) { if (collision.gameObject.name == "Cube2" ) { this.transform.localScale = collision.gameObject.transform.localScale; } } } |
ゲームプレイして、Cube2にぶつかってみましょう。
プレーヤーのサイズが、Cube2と同じ大きさに変わりました。