目录
1、三角函数
角度制:Deg
弧度制:Rad
弧度定义 :
为弧长,
为半径 ,
为角度
public class DegAndRadTest : MonoBehaviour
{
void Start()
{
//角度转成弧度
float x = Mathf.Deg2Rad * 180;
Debug.Log("x: " + x);// π 即 3.141593
//弧度转成角度
float y = Mathf.Rad2Deg * 3.14f;
Debug.Log("y: " + y);// 180°即 179.9088
float z = Mathf.Sin(30 * Mathf.Deg2Rad);
Debug.Log("z: " + z);// 30 * Mathf.Deg2Rad表示30°,即 0.5
}
}
2、坐标系
- transform.position += transform.forward 等于是物体自身坐标系的 z 轴前进(看的还是世界坐标)
- transform.Translate(Vector3.forward, Space.Self) 等于是物体自身坐标系的 z 轴前进
- transform.Translate(transform.forward, Space.World) 等于是让物体沿着物体自身坐标 z 轴在世界坐标上的方向上前进 (1,2,3 效果一样)
- transform.position += Vector3.forward 等于是在世界坐标的 z 轴前进
- transform.Translate(Vector3.forward, Space.World) 等于是让物体沿着世界坐标轴的z 轴前进
- transform.Translate(transform.forward, Space.Self) (如果写在start里的时候,如下:
(原位置)
(运行后)
3、向量
向量是终点位置减起始位置;向量是没有位置的,可以平移;
向量加法:a(x,y,z) b(a,b,c) ; a + b = (x+a,y+b,z+c)
向量减法:a(x,y,z) b(a,b,c) ; a - b = (x - a,y-b,z - c)
向量的减法的几何方向理解:将两个向量的起点移到同一点,连接两个向量的终点,方向为减向量(b)指向被减向量(a)
4、摄像机跟随
public class CameraFollow : MonoBehaviour
{
public GameObject target;
public float forward;
public float height;//摄像机的高度
public float speed;
private void LateUpdate()
{
//跟主角位置偏差 后方位置 上方位置
Vector3 v = (-target.transform.forward * forward) + new Vector3(0, height, 0);
//一直在主角的后方
Vector3 pos = v + target.transform.position;
//用差值移动方式运动到固定位置
transform.position = Vector3.Lerp(transform.position, pos, speed);
transform.LookAt(target.transform);//摄像机看向target
}
}
5、点乘
小于90°时为正,
大于90°时为负
public class DotProduct : MonoBehaviour
{
public GameObject cube;
public GameObject sphere;
void Update()
{
float w = Vector3.Dot(cube.transform.forward, sphere.transform.position - cube.transform.position);
Debug.DrawLine(cube.transform.position, cube.transform.forward * 10, Color.red);
Debug.DrawLine(cube.transform.position, sphere.transform.position, Color.blue);
Debug.Log("w: " + w);
}
}