オブジェクトの片方だけを伸ばしたり縮めたりできるスクリプトを作ってみましょう。
通常は、オブジェクトのスケールは、中心を基準にして伸縮します。
今回は、片側だけを動かして、伸縮運動をくり返せるように作成します。
関連記事:
2点間の往復運動をくり返す
オブジェクトの往復運動をつくる
キャラクターを行ったり来たりさせる
高さの伸縮をくり返す
空のオブジェクトを作成し、座標をすべて0にします。
Cubeを作成し、座標をすべて0にします。
Cubeを、GameObjectにドラッグ&ドロップし、親子関係をつくります。
CubeのY座標を0.5にします。
GameObjectのY方向スケールを0.1にします。
ゲームビューではこのように見えています。
HeightChange.csを作成し、GameObjectに追加します。
HeightChange.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class HeightChange : MonoBehaviour { private float heightPos; private bool turnPoint; void Start() { heightPos = 0; turnPoint = false; } void Update() { if(transform.localScale.y > 5.0f) { turnPoint = true; } else if(transform.localScale.y < 0.1f) { turnPoint = false; } if(!turnPoint) { transform.localScale = new Vector3(1, heightPos, 1); heightPos += 0.1f; } if(turnPoint) { transform.localScale = new Vector3(1,heightPos, 1); heightPos -= 0.1f; } } } |
ゲームプレイしてみましょう。
Cubeの上部だけが動いて、伸縮をくり返します。