オブジェクトを往復するように回転させてみました。
往復する値は三角関数で作ります。
このxに経過時間を渡します。xに値をかけると、回転速度を変えられます。
また、例えば全体に45をかけると、マイナス45度~45度の範囲を往復します。
スクリプトでは、回転を加えるために、Startメソッドでデフォルトの回転値を保存して、三角関数から作る回転と合成しました。
using UnityEngine;
public class RotateTest2 : MonoBehaviour
{
float sec;
Quaternion defaultRotation;
[SerializeField] float angle;
[SerializeField] float rotateSpeed = 1f;
// Start is called before the first frame update
void Start()
{
defaultRotation = transform.rotation;
}
// Update is called once per frame
void Update()
{
sec += Time.deltaTime;
transform.rotation = Quaternion.AngleAxis(Mathf.Sin(sec * rotateSpeed) * angle, Vector3.up) * defaultRotation;
}
}
Quaternion.AngleAxisメソッドの第二引数に回転の軸を渡します。Vector3.upを渡すと、ワールドのY軸に沿って回転します。
スクリプトで角度と回転のスピードを指定しています。
これで往復するように回転させられました。