Unity输入方式有三种:
直接检测有两种:
A. 直接检测按键,优点:简单方便,效率高 缺点:修改按键麻烦
if(Input.GetKeyDown(KeyCode.X)) //X代表键盘上的某个按键
。。。
B. 间接检测按键,优点:方便修改按键
public KeyCode JumpButton = KeyCode.Space; //提前设置好不同功能对应按键
if(Input.GetKeyDown(JumpButton))
。。。
分为两种:
A.键盘类(适合横版过关)
1.Vertical 对应键盘上面的上下箭头或W,S键,当按时触发
2.Horizontal 对应键盘上面的左右箭头或A,D键,当按时触发
B.鼠标类(适合飞机弹幕)
1.Mouse X 鼠标沿着屏幕X移动时触发
2.Mouse Y 鼠标沿着屏幕Y移动时触发
3.Mouse ScrollWheel 当鼠标滚动轮滚动时触发
ps:Mouse Y和ScrollWheel操作手感不佳,X则挺正常的
读取时分为两种:
使用例子:
float x = Input.GetAxisRaw("Horizontal");
transform.Translate(Vector3.right * x * moveSpeed * Time.deltaTime, Space.World);
float y = Input.GetAxisRaw("Vertical");
transform.Translate(Vector3.up * y * moveSpeed * Time.deltaTime, Space.World);
Vertical和Horizontal输入的键可以通过打开Unity顶部栏的Edit->Project Setting->Input,进行修改。
Note:“XXX”中的XXX名字注意不要拼错,否则无效
双人游戏快速改键位:https://blog.csdn.net/w1095471150/article/details/52642636
Unity常用移动方式有四个组件和Vector3:
(未注明属性的均为函数)
Unity3D的位移、旋转的3D数学模型:https://blog.csdn.net/sxbluebird/article/details/43225401
前提:了解rigidbody2D面板各参数含义,才能根据自己的游戏所需效果调成自己想要的
可参考:https://blog.csdn.net/zhenghongzhi6/article/details/82381537
内容在新版本上加入了Linear Drag线性阻力以及以后其他新功能
1.加入移动,跳跃动画,甚至加入蓄力跳
2.加入音效
3.调整重力参数,线性阻力
博客分享:
Unity性能优化——Rigidbody2D详解:https://blog.csdn.net/SerenaHaven/article/details/78851089
Unity 2D 平台类游戏 人物移动 Rigidbody2D详解及其常用API:http://www.pianshen.com/article/8423262368/
不同的游戏需要不同效果的移动方式,一开始选择恰当的移动方式会省去不少后期重新选择更改的时间以及无用功。
简单可以分为有惯性有重力,有惯性无重力,无惯性有重力,无惯性无重力
2D游戏分为以下几种:
1.格斗游戏(无惯性有重力):需要随时左右移动,加入惯性后可能手感不佳
2.飞机射击类游戏(无惯性无重力):需要在一堆子弹中穿梭,所以需要需灵敏的控制,移除惯性和重力
3.超级玛丽类横板跳跃游戏(有惯性有重力)
4.太空模拟(有惯性无重力)
根据自己的游戏再细分,比如有了惯性,那惯性的程度,跳起来在空中能否左右移动等,这些都是可以灵活思考的。
我的另一篇博文:Unity2D横版移动跳跃问题——关于一段跳与二段跳 https://blog.csdn.net/weixin_42622658/article/details/91357557