按键
Input
【静态方法】
Input.GetKey(KeyCode.按键);
Input.GetKeyDown(KeyCode.按键);
Input.GetKeyUp(KeyCode.按键);
Input.GetMouseButton() 按住鼠标
Input.GetMouseButtonDown() 按住鼠标
Input.GetMouseButtonUp() 按住鼠标
左0 右1 中2
虚拟按键 Edit -- > ProjectSetting -- > Input
【详细设置】
1.虚拟按键名称
2.描述名称 + -
3.对应按键 + -
4.备用按键 + -
5.抬起按键,值恢复为 0 的时间
6.小于此值,记为 0 (用于遥感)
7.按下按键,值达到 +1 或 -1的时间
8.同时按下正负键值为 0
9.+ - 反转
虚拟按键 Input.GetAxis("虚拟按键")
Horizontal 水平轴
Vertical 竖直轴
虚拟按键 Input.GetButton("虚拟按键")
自定义虚拟按键
Mouse X (相对)
鼠标向左为 负
向右为 正
Mouse Y (相对)
鼠标向上为 负
向下为 正
预设体 .prefab
【预设体 .prefab】 ----- 一种以文件形式存在的游戏对象
从游戏对象面板托到Project面板中
图标变为蓝色
【消失预设体】
生成对象销毁,不去操作预设体
【生成预设体】 生成对象名称 + Clone
Object.Instantiate(Object,Position,Quaternion.identity)
【销毁对象】
Destroy(GameObject , Time);
Select :选择
Revent :重置
Apply :应用
注意:只能拖文件到Prefab中,不能拖游戏场景中的游戏对象
碰撞
检测盒子
Box Collider
Physic Material -- 物理材质
Mesh Collider 网格碰撞器
【触发器】 Collision中勾选Is Trigger 主用于检测、
【条件】 1.两个物体都有碰撞体
2.至少一个带有刚体
3.至少一个是触发器
【回调函数】
OnTriggerEnter(Collider other); 触发开始一瞬间调用一次
OnTriggerStay(Collider other); 触发时调用
OnTriggerExit(Collider other); 触发离开一瞬间调用一次
刚体 Rigidbody 组件
【面板属性】
Mass:质量
Drag:阻力
Angular Drag:角阻力
Use Gravity : 是否使用重力
Is Kinematic:是否关闭动力学
Interpolate :插值可以平滑消除固定帧率运行物理导致的现象
Collision Detection : 碰撞检测
Discrete :离散,检测次数比较少
Continuous:连续,检测次数增多
Continuous Dynamic:动态连续,对快速的物体连续,对慢的物体离散
Constraints:约束
Freeze Position x y z
Freeze Rotation(欧拉角) x y z
方法
【速度】
rig.velocity 获取速度
rig.velocity = Vector3.up * 5 获取向上5m/s的瞬时速度
【力】
rig.AddForce(Vector3) 添加一瞬间的力
【爆炸力】
rig.AddExplosionFore(爆炸力,爆炸位置,爆炸半径);
检测碰撞
【碰撞产生的条件】
1.两个物体都有Collider
2.至少有一个带有Rigidbody
【回调函数】
OncollisionEnter(Collision other) 碰撞开始一瞬间调用一次
OnCollisionStay(Collision other) 碰撞过程中相对运动时,每帧调用一次
OnCollisionExit(Collision other) 碰撞分离一瞬间调用
【Collision other】
other.collider.GetComponent<组件>(). ......
other.contacts[ ] 所有碰撞点的信息
1.normal
2.point(碰撞点坐标) Vector3
3.........
Tips
虚拟按键上面的控制按键,下面的控制摇杆,不必纠结
【导出 -- > 发布】
File --> Bulid Settings -->Add Open Scenes -->Bulid
【隐藏public字段】
HideInInspector : 特性,可隐藏
【随机数】
Random.Range(int,int/float,float);