近期复习了unity2d的一些知识,总结一些经验。目标是:牢记以下137条操作,越级上升到中级阶段
unity2d基础操作笔记
-
- 一、如何查看当前系统的输入设置
- 二、如何获取水平或者垂直的输入的代码
- 三、如何获取当前人物的x和y的值
- 三、如何简单写出控制人物水平移动的代码
- 四、如何设定游戏的帧率
- 五、如何控制渲染顺序
- 六、如何调整摄像机摄像范围大小
- 七、如何对Hierachy中的图进行分组
- 八、如何设置y轴上的渲染,应用场景是?
- 九、如何理解渲染点Sprite Renderer的Sprite Sort Point
- 十、如何处理两个物体碰撞时抖动
- 十一、如何处理两个物体碰撞时选择
- 十二、物体移动的两种常见方法
- 十三、代码中的pulibc属性
- 十三、多边形碰撞器的添加【技巧】
- 十四、碰撞器和触发器区别?
- 十五、Assets文件可以直接拖入到scene中,更加直观【技巧】
- 十六、如何获取触发或者碰撞物体的上脚本里面的值
- 十七、如何在代码中销毁游戏物体
- 十八、如何处理加了rigidbody2d组件后,物体往下掉的情况
- 十九、码如何判断碰撞的是否是名叫luna的游戏物体
- 十九、推荐在预制体上添加Animators组件【技巧】
- 二十、Animator视图中,可以使用鼠标中键按住移动【技巧】
- 二十一、创建anim文件时,默认是保存在Assets下【技巧】
- 二十二、如何添加动画
- 二十二、如何录制动画
- 二十三、如何在创建好的animation中添加动画图片
- 二十四、如何创建新的clip
- 二十五、另外一种快速创建动画animation的方法【技巧】
- 二十六、关于过渡条件【概念】
- 二十七、画设定好过渡时,为什么会有动画一起执行?
- 二十八、边跑边释法过程如何实现?
- 二十九、Animator的Auto Live Link功能【技巧】
- 三十、Has Exit Time常规使用
- 三十一、animator动画执行时卡住如何解决
- 三十二、如何修改Animator的的Exit Time和Transition Duration?
- 三十三、如何在代码中获取物体身上的组件?
- 三十四、如何理解混合树?
- 三十五、关于Blend Type【技巧】?
- 三十六、关于fixedUpdate中的周期时间如何使用?
- 三十七、如何查看当前系统中导入了哪些包?
- 三十八、如何导入包
- 三十九、如何实现cinemaMachine镜头跟随游戏物体?
- 四十、透视和正交的使用场景【待确认】
- 四十一、关于摄像机中的size【概念】
- 四十二、创建animation的技巧【技巧】
- 四十三、有些NPC需要一些动画来回切换如何制作思路【技巧】
- 四十四、如何预览动画?
- 四十五、如何使用代码生产物体?
- 四十六、如何销毁游戏世界中的物体?
- 四十六、如何识别是否需要设置动画过渡条件?
- 四十七、动画有多个过渡条件,会默认播放第一个【待确认】
- 四十八、动画中攀爬如何实现?
- 四十九、ugui必须知道的【概念】
- 五十、transform组件和rect transform区别【概念】
一、如何查看当前系统的输入设置
edit–project settings–input manager–axes
二、如何获取水平或者垂直的输入的代码
horizontal是-1到1之前的数,为0时就是没有输入
float horizotal=Input.GetAxis("Horizontal");
三、如何获取当前人物的x和y的值
Vector2 position=transform.position;
position.x是x点,表示水平方向
position.y是y点,表示垂直方向
三、如何简单写出控制人物水平移动的代码
就是获取人物的x点,让x点自增或者自减
position.x=position.x+0.1f*Input.GetAxis("Horizontal");
transform.position=position;
控制人物垂直移动,就是获取人物的x点,让x点自增或者自减
position.y=position.y+0.1f*Input.GetAxis("Vertiaca;");
transform.position=position;
关于移动速度的控制
update方法是每秒执行60次,如果每次0.1,就会移动每秒6米,会发现人物移动很快。因此,需要调整每秒移动0.1米,就可以乘以Time.deltTime
所以最终代码
Vector2 position=transform.position;
position.x=position.x+0.1f*Input.GetAxis("Horizontal")*Time.deltTime;
position.y=position.y+0.1f*Input.GetAxis("Vertiaca;")*Time.deltTime;
transform.position=position;
四、如何设定游戏的帧率
start方法中,使用代码Application.targetFrameRate=10;表示每秒10帧
五、如何控制渲染顺序
- 通过z轴调整深度,可以点击视窗上的2d或者3d图标进行切换观察z的的位置。
- 通过设置layer层级。spriteRender或者TilemapRenderer调整Order in layer,值越大越后渲染,越小,越先渲染;值大的会覆盖值小的。
六、如何调整摄像机摄像范围大小
点击Hierachy中的MainCamera,然后调整右边的Size值即可
七、如何对Hierachy中的图进行分组
在Hierachy视图中单机右键,选择create object,将图放在空物体下即可
八、如何设置y轴上的渲染,应用场景是?
- edit-project settings-Graphics-Cameral Settings
- Transparency Sort Mode-Custom Axis
- Transparency Sort Axis-x、y、z,设置z和x为0,设置y为1
最终实现的效果:当大于1时图在上面,当小于1时在下面,大的最后渲染,会覆盖小的
九、如何理解渲染点Sprite Renderer的Sprite Sort Point
- 是根据设定的轴心点去渲染。
- 当值是center时,是按照中心点渲染;当选择pivot时,就可以按照pivot的点设置渲染了。
- y值越大就越先渲染,越小就越后渲染
- 轴心点英文 pivot,中心点英文center
十、如何处理两个物体碰撞时抖动
抖动的原因是:本身的物理系统和代码中的移动有冲突了,代码移动进刚体,物理系统检测到有重叠,又推出刚体,造成抖动
解决办法一:
公共属性:
private rigidbody2d;
start方法:
re