Unity3D基础论-开发游戏必备的组件、属性、方法(2)

2017-07-11  本文已影响132人  斗魁
努力、奋斗

物理材质(Physic Material):

项目视图(project)右击  Create - Physic Material    选择创建

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);

}

}

上一篇下一篇

猜你喜欢

热点阅读