物理材质(Physic Material):
项目视图(project)右击 Create - Physic Material 选择创建
属性依次为:动态摩擦力 静态摩擦力 反弹力 组合摩擦力(取平均值、取最小值、取乘积值、取最大值)组合弹力(取平均值、取最小值、取乘积值、取最大值)
使用方法: 直接把设置好的物理材质拖进去就行了
射线Ray:
射线类Ray组成部分、起点(0rigin)方向(direction)
//实例化一条射线
Camera.main主摄像机 ScreenPointToRay将屏幕上的一个点转换成射线
Input.mousePosition获取鼠标坐标
Ray r = Camera.main.ScreenPointToRay(Input.mousePosition);
Raycast发射物理射线返回一个碰撞检测对象RaycastHit【参数有 起点 方向 距离】
Physics物理学 Physics.Raycast(r, 1000)
raycastAll发射物理射线,返回所有碰撞检测对象RaycastHit
用来描述射线射到的物体
RaycastHit hit;
属性collider碰撞物体的Collider组件point碰撞点坐标
.point可以获取射线射到的点的世界坐标
世界坐标器
本地坐标器
摄像机坐标系:
屏幕坐标系:(ScreenPoint)
视图坐标系:(ViewPoint)
示例:
void RayCastTest()
{
//实例化一条射线
Ray r = Camera.main.ScreenPointToRay(Input.mousePosition);
//用来描述射线射到的物体
RaycastHit hit;
//
if(Physics.Raycast(r, out hit,100)){
//打印射中物体的名字
Debug.Log(hit.transform.name);
if (hit.transform.name == "Plane")
{
//.point可以获取射线射到的点的世界坐标
//transform.position = hit.point + new Vector3(0,0.5f,0);
transform.position = Vector3.Lerp(transform.position, hit.point + new Vector3(0, 0.5f, 0), Time.deltaTime * 5);
}
}