Unity 圆周运动,渐开线运动

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Rot : MonoBehaviour {
    public Transform aroundPoint;//围绕的物体
    public float angularSpeed;//角速度
    public float aroundRadius;//初始圆半径
    private float angled;
    void Update () {
        angled += (angularSpeed * Time.deltaTime) % 360;//累加已经转过的角度
        //float posX = aroundRadius * Mathf.Sin(angled * Mathf.Deg2Rad);//计算x位置
        //float posZ = aroundRadius * Mathf.Cos(angled * Mathf.Deg2Rad);//计算y位置
         float posX = aroundRadius * (Mathf.Cos(angled)+angled*Mathf.Sin(angled));//计算x位置
        float posZ = aroundRadius * (Mathf.Sin(angled)-angled*Mathf.Cos(angled));//计算y位置
        transform.position = new Vector3(posX, 0, posZ) + aroundPoint.position;//更新位置
    }
}
 

posted @ 2018-08-18 16:14  低小调  阅读(124)  评论(0)    收藏  举报