第33天力、射线检测、球形检测和延迟函数

AddRelativeForce()

添加的是相对于自身坐标系的力

AddTorque

添加一个扭矩:世界坐标

AddRelativeTorque

物体坐标

物理射线

射线

由一个端点无限延长所形成的直线

定义射线

起点

方向

创建射线

new Ray(起点,方向)

Physic.Raycast

orgin:起点

direction:方向

maxDistance:检测的最大距离

layerMask:射线碰撞的层

RaycastHit hit:碰撞信息

RaycastHit

transform-碰撞到的物体的transform

distance-碰撞点到射线起点的距离

normal-碰撞到的点的平面的法线

point-碰撞到的点

从屏幕坐标的位置发射射线

Camera.main.ScreenPointToRay(Input.mousePosition)

射线穿透检测

Physic.RaycastAll()

发射一条射线,检测是否射到物体当射到物体时,不会终止检测,而是穿透过去继续检测,直到到达指定的检测距离,返回所有的检测信息

球形检测

Physics.OverlapSphere(圆心,半径,层)

在球形范围内,所有带碰撞体的物体

延迟函数

概念

可以隔一段时间以后再执行某段逻辑

Destroy

经过time时间后销毁object

Invoke(方法名,时间)

经过time时间,调用methodName方法

方法名是String类型,不需要参数

1.当延迟函数启动,脚本被失活,延迟函数继续执行

2.当延迟函数启动,物体被失活,延迟函数继续执行

3.当延迟函数启动,物体被删除,延迟函数不会继续执行

4.延迟函数受时间缩放影响

5.延迟函数尽量避免在Update中使用

取消延迟

IsInvoking

有参数:判断某一个方法是否开启了延迟

没有参数:判断所有方法是否开启了延迟

CancelInvoke

有参数:取消某一个方法的延迟

没有参数:取消所有延迟函数

原文地址:https://www.cnblogs.com/yifengs/p/14237565.html