<動き>
・一定の高さまで上昇した後に、ゆっくり角度を変更させる。
(スクリプトその1:Rotateで実装)
using System.Collections; using System.Collections.Generic; using UnityEngine; public class MoveRotate1 : MonoBehaviour { private Vector3 pos; private Quaternion rot; void Update() { pos = transform.position; rot = transform.rotation; print(rot.z); if (pos.y < 5.1f) { transform.Translate(Vector3.up * Time.deltaTime); } if (pos.y > 5.0f) { Invoke("BRotate", 0.5f); } } void BRotate() { if (rot.z > -0.22f) { transform.Rotate(new Vector3(0, 0, -10) * Time.deltaTime); } } }
(スクリプトその2:RotateTowardsで実装)
using System.Collections; using System.Collections.Generic; using UnityEngine; public class MoveRotate2 : MonoBehaviour { private Vector3 pos; private Quaternion rot; void Update() { pos = transform.position; rot = transform.rotation; print(rot.z); if (pos.y < 5.1f) { transform.Translate(Vector3.up * Time.deltaTime); } if (pos.y > 5.0f) { Invoke("BRotate", 0.5f); } } void BRotate() { if (rot.z > -0.22f) { transform.rotation = Quaternion.RotateTowards(transform.rotation, Quaternion.Euler(0, 0, -25), 0.3f); } } }