一般是在update之类的类里面进行获取
Getkeydown
public static bool GetKeyDown(string name)
if(Input.GetKeyDown(KeyCode.Space))
只会在按下的那一刻返回,因为按下只有那么一帧
Keydown按下的那一帧触发
Key按着的时候触发
KeyUp弹起的那一帧触发
一般是在update之类的类里面进行获取
Getkeydown
public static bool GetKeyDown(string name)
if(Input.GetKeyDown(KeyCode.Space))
只会在按下的那一刻返回,因为按下只有那么一帧
Keydown按下的那一帧触发
Key按着的时候触发
KeyUp弹起的那一帧触发
本课圣典
http://wiki.ceeger.com/script/unityengine/classes/input/input
PingPong
float PingPong(float t, float length);
让数值t在 0到length之间往返。t值永远不会大于length的值,也永远不会小于0。
返回值将在0和length之间来回移动。
LerpAngle
和Lerp的原理一样,当他们环绕360度确保插值正确。
static float MoveTowards(float current, float target, float maxDelta);
current | The current value. 当前值 |
target | The value to move towards. 要移向的值 |
maxDelta | The maximum change that should be applied to the value. 应用到该值的最大变化 |
匀速运动 保证不会超过目标值
改成负的就是远离目标
static float Lerp(float from, float to, float t)
基于浮点数t返回a到b之间的插值,t限制在0~1之间。
当t = 0返回from,当t = 1 返回to。当t = 0.5 返回from和to的平均值。
t<0返回from T>1返回to
Mathf.ClosestPowerOfTwo 最接近二次方
返回距离value最近的2的次方数。
Mathf.DeltaAngle 增量角
计算给定的两个角之间最短的差异。
floor向下取整 float
floorToInt向下取整 int
Max取得最大值,两个小数取最大
min同理
pow取得前一个参数的后一个次方
Sqrt取得平方根
Abs取绝对值
Ceil向上取整(float)
CeilToInt 向上取整(int)
Clamp钳制
static float Clamp(float value, float min, float max)
限制value的值在min和max之间, 如果value小于min,返回min。 如果value大于max,返回max,否则返回value
本课圣典
http://wiki.ceeger.com/script/unityengine/classes/mathf/mathf
Deg2Rad | Degrees-to-radians conversion constant (Read Only). 度到弧度的转化常量。(只读) |
Epsilon |
A tiny floating point value (Read Only).
|
Infinity | A representation of positive infinity (Read Only). 表示正无穷,也就是无穷大,∞ (只读) |
NegativeInfinity | A representation of negative infinity (Read Only). 表示负无穷,也就是无穷小,-∞ (只读) |
PI | The infamous 3.14159265358979… value (Read Only). 圆周率(π)的值3.14159265358979323846…(只读) |
Rad2Deg | Radians-to-degrees conversion constant (Read Only). 弧度到度的转化常量。(只读) |
要监听的游戏物体,必须有collider,Trigger触发器
Edit-Project Settings-physics-Queries Hit Triggers必须打钩
鼠标在哪个游戏物体上按下,在相应的游戏物体上抬起才会触发
Coroutine协程第三课时
StartCoroutine
StopCoroutine
StopAllCoroutine
开启和关闭的参数类型一定是一致的
Coroutine协程方法第二课时
yield return new WaitForSeconds(3)
等待3S
coroutines协程方法
在调用方法的时候继续向下执行
不会阻塞接下来方法的执行
可以自身暂停执行一段时间
也就是说,协程方法开启后会继续运行下面的代码。不会等待协程方法运行结束才继续执行
Coroutines规则
1.返回值 Ienumerator
使用yield return (返回值)返回参数
2.协程方法的调用StartCoruotine(method())
脚本在编辑器下运行
ExecuteInEditMode(特性)
Invoke 延迟调用
例子
Invoke("LaunchProjectile", 2); InvokeRepeating 重复延迟调用
InvokeRepeating(string methodName, float time, float repeatRate);
字符串方法名,过多久第一次调用,之后过多久调用一次
CancelInvoke
在当前MonoBehaviour,取消所有Invoke调用
GetComponent
单个组件 多个第一个
GetComponents
多个组件 所有的 数组接收
GetComponent(s)InChildren
在自身以及子类中得到
GetComponent(s)InParent
在自身以及父类中得到
CompareTag比对标签是否一致
BroadcastMessage广播消息,在自身上和子物体上搜索执行方法
参数设置成"字符串",null,SendMessageOptions.DontRequireReceiver 广播消息不一定需要接收者
SendMessage在当前上面搜索
SendMessageUpWards在自身和父物体上搜索执行方法
父亲的父亲也会调用
DontDestroyOnLoad在跳转场景时不销毁游戏物体
FindObjectOfType寻找组件,只返回第一个
FindObjectsOfType寻找组件,返回多个
不查找未激活的游戏组件
emble管理组件是否启用
Object.Instantiate 实例化参数
original 你想要拷贝的已有对象
position 新对象的位置
rotation 新对象的方向
FindGameObjectsWithTag通过标签来查找游戏物体返回多个
FindWithTag通过标签查找 返回第一个
Find根据名字查找,耗费性能
查找查不到就报空,所以在开始之前最好先做安全防护
DontDestroyOnLoad在跳转场景时不销毁游戏物体
FindObjectOfType寻找组件,只返回第一个
FindObjectsOfType寻找组件,返回多个
不查找未激活的游戏组件
emble管理组件是否启用
Object.Instantiate 实例化参数
original 你想要拷贝的已有对象
position 新对象的位置
rotation 新对象的方向
invoke 间隔调用
cancelinvoke 取消当前脚本的invoke
通过gameobject访问当前组件的游戏物体
isactiveandenabled 判断当前组件是否启用
activeInHierarchy 判断游戏物体是否启用
enable 组件启用禁用
setactive 游戏对象启用禁用
游戏物体的禁用和启用
GameObject类常用变量
tag 标签
GameObject.activeInHierarchy 在层级激活
场景中的游戏对象是否激活?GameObject.activeSelf 激活自己
后两者区别
GameObject.activeSelf 如果父物体被禁用,但是它本身没有被禁用,这个属性还是存在(Read Only)