print(Time.deltaTime + ",完成上一帧所用的时间(以秒为单位)");
print(Time.fixedDeltaTime + ",执行物理或者其他固定帧率更新的时间间隔");
print(Time.fixedTime + ",自游戏启动以来的总时间(以物理或者其他固定帧率更新的时间间隔累计计算的)");
在11.Time里面
print(Time.deltaTime + ",完成上一帧所用的时间(以秒为单位)");
print(Time.fixedDeltaTime + ",执行物理或者其他固定帧率更新的时间间隔");
print(Time.fixedTime + ",自游戏启动以来的总时间(以物理或者其他固定帧率更新的时间间隔累计计算的)");
在11.Time里面
携程 coroutine
(领出来一部分功能单独执行)
作用:
1.延时调用
2.协同执行
常用方法
Instantiate 创建游戏物体
CreatePrimitive 创建原始几何体
SetActive(true)激活游戏物体
常用属性
gameObject.tag 标签(区分游戏物体类)
gameObject.layer 层级
pring类,必须继承自Monobehaviour
Invoke:
通过标签查找
https://docs.unity.cn/cn/2018.4/ScriptReference/index.html
GameObject.SendMessage(“method”):可以直接调用GameObject上的所有脚本上的 method方法
1. 方法无论私有公有都可以调用。
2.如果一个脚本上,有2个同名方法,一个有参一个无参,用SendMessage调用时不管有没有填写参数,都默认调用无参的那个方法;只有没有无参方法时才会去调用相匹配的有参方法。
3.如果GameObject上有多个脚本都含有一个同名方法,用SendMessage调用时会将所有脚本上的这个方法都调用一遍。
SendMessage()感觉很牛逼很方便但效率不高所以不常用,因为每次调用的时候都会去遍历检测自身或者子节点上要调用的方法。
优点是可以跨语言,例如Javascript可以调用C#的方法
相关方法
SendMessage(“方法名”, 参数,SendMessageOptions)
调用GameObject自身的Script上的方法
BroadcastMessage(“方法名”, 参数,SendMessageOptions)
调用自身和子Object的Script上的方法
SendMessageUpwards(“方法名”, 参数,SendMessageOptions)
调用自身和父Object的Script上的方法
第三个参数的使用
SendMessageOptions.RequireReceiver 如果没有找到相应方法,会报错(默认是这个状态)
SendMessageOptions.DontRequireReceiver 没有找到相应方法,也不会报错,自动忽略
————————————————
版权声明:本文为CSDN博主「第五君」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fifthgently/article/details/78352876
静态方法
Angle(向量a,向量b)计算两者夹角度数,只返回偏小的角度并且为绝对值
Distance(向量a,向量b) 计算两点之间的距离
Dot(向量a,向量b) 计算两者点积 公式:ax × bx + ay × by 或者 a长度*b长度*两者夹角角度
magnitude 向量的模长(只读)
计算公式:(x的平方+y的平方)开根号
sqrMagnitude 模长的平方(只读)
normalized 向量单位化(只读)
使x的平方加y的平方为1,也就是说x与y会按比例进行规范化输出
GameObject.FindGameObjectsWithTag()
这个函数是根据标签来查找游戏物体对象,它返回的是一个游戏物体对象数组,场景中存在相同标签的物体都将被返回。
1)该函数方法的返回值是一个游戏数组对象,存在多个同标签的游戏物体,将全部返回、
2)物体需要处于active()true状态才能被找到。
3)该方法消耗的性能比Find()方法小
GameObject.FindWithTag()
GameObject.FindGameObjectWithTag()
返回特定Tag的游戏对象,如果有多个,根据挂载时间,返回最后挂载的那个(后者似乎有BUG,更建议使用FindWithTag)
GameObject.FindObjectOfType<T>() 返回特定类型的游戏对象,如果有多个,根据挂载时间,返回最后挂载的那个
activeInHierarchy状态代表物体在场景中的实际的active状态。实际上代表的是物体及其所有祖先物体的activeSelf状态。而activeSelf对应于其在inspector中的checkbox是否被勾选
activeSelf状态代表物体自身的activeSelf状态,所以当物体本身activeSelf为true,而其所有祖先物体的activeSelf状态不全为true时,这个物体的activeInHierarchy状态为false。
————————————————
输出函数
Debug.Log
1.测试
2.检错
API
OnDisable
GetAxis 中间有一个值的过度 GetAxisRaw 只有三个值-1.0.1 Mouse 鼠标的检测 增量有正负
协程中可以开启另一个协程
调用时间