using UnityEngine;
using System.Collections;
public class SinMove : MonoBehaviour {
//座標の補正
//移動するときはこっちを使う
private Vector3 OriginalPos = Vector3.zero;
//往復する時間
//1を指定すれば1秒で往復する
public float TurnAroundTime = 0f;
//距離 X1なら X1 ~ X-1 を往復
public Vector3 Distance = Vector3.zero;
void Awake()
{
//位置を記憶する
OriginalPos = GetComponent<Transform>().position;
}
//往復移動
void FixedUpdate()
{
//(経過時間 * (一周する角度 / 往復時間)) * ラジアンへ変換;
float SinAngle = (Time.fixedTime * (360 / TurnAroundTime)) * Mathf.Deg2Rad;
//sinカーブ
float Result = Mathf.Sin(SinAngle);
//座標の補正
GetComponent< Rigidbody >().MovePosition((Result * Distance) + OriginalPos);
}
}
コメントをかく