华体会体育:物体做圆周勾当时 UNITY环绕一个物体做圆周勾当 - 保健 - 旭升安康网

华体会体育

旭升安康网

您此刻的地位:华体会体育 > 保健

物体做圆周勾当时 UNITY环绕一个物体做圆周勾当

旭升安康网(sffzjx.com)搜集清算 | 宣布日期:2020-06-15

有一道题:一个物体环绕原点(0,0)做匀速圆周勾当。t1时物体地位为(x1,y1),已知物体的角速率为 w,环绕半径为 r。求颠末时候t后,物体在圆周上地位(x,y)。

求得:
- x = r * sin(w * t)
- y = r * cos(w * t)

using UnityEngine;
public class RotateAround : MonoBehaviour {
public Transform aroundPoint;//环绕的物体
public float angularSpeed;//角速率
public float aroundRadius;//半径
private float angled;
void Start () {
//设置物体初始地位为环绕物体的正后方间隔为半径的点
Vector3 p = aroundPoint.rotation * Vector3.forward * aroundRadius;
transform.position = new Vector3(p.x, aroundPoint.position.y, p.z);
}
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地位
transform.position = new Vector3(posX, 0, posZ) + aroundPoint.position;//更新地位
}
}

相干保举

分享到:QQ空间新浪微博腾讯微博人人网微信