一. 为物体施加一个向上的力, 使物体的重力和上升力平衡
/// <summary>
/// 为物体施加一个向上的力, 使物体的重力和上升力平衡
/// 9.81f为Unity中的重力加速度
/// </summary>
void FixedUpdate()
{
GetComponent<Rigidbody>().AddForce(Vector3.up * 9.81f * (GetComponent<Rigidbody>().mass));
}
二. 检测扇形角度
Debug.DrawLine来绘制两条红色的线,用来显示所在的区域。
//目标位置与当前位置的距离
float distance = Vector3.Distance(target.transform.position, transform.position);
//返回向右旋转30度的四元数
Quaternion right = transform.rotation * Quaternion.AngleAxis(30, Vector3.up);
//返回向左旋转30度的四元数
Quaternion left = transform.rotation * Quaternion.AngleAxis(30, Vector3.down);
Vector3 n = transform.position + (Vector3.forward * distance);
//旋转30度后的向量
Vector3 leftPoint = left * n;
Vector3 rightPoint = right * n;
//绘制射线进行显示
Debug.DrawLine(transform.position, leftPoint, Color.red);
Debug.DrawLine(transform.position, rightPoint, Color.red);
三. 球形插值 - 太阳升降
public class Sunrise2Sunset : MonoBehaviour
{
public Transform sunrise;
public Transform sunset;
// 日出到日落的时间
public float journeyTime = 1.0f