给hv设置一个优先级
封装方法
sortinglayer 大层级层级越大越后渲染。覆盖掉别的物体
orderlayer同一层级的渲染顺序
给hv设置一个优先级
封装方法
sortinglayer 大层级层级越大越后渲染。覆盖掉别的物体
orderlayer同一层级的渲染顺序
坦克移动时改变显示
获得精灵渲染
精灵数组
把图片拖入数组
以cube为对照调整坦克大小
创建预制体文件夹
直接复制坦克拖拽精灵
创建预制体
创建动画和动画控制器文件夹
创建动画的简单方法:将动画图片拖入菜单自动生成。
摄像机size8.5
背景黑色
显示窗口5:4
切割精灵
1.写一个爆炸方法
2.爆炸脚本,定时销毁
3.SendMessage传递方法
4.玩家的无敌方法:ISdefended;defended time ;在update中调用。判断是否处于保护状态,保护时间累减
1.区别不同的碰撞物体,通过添加标签的方法。
2.switch语句
3.搭建空气墙
Tigger触发器,是触碰到的会发生某件事情,
碰撞器,会有碰撞效果,会有力、
检测两方发生碰撞,两方都必须要有碰撞器(box collider),一方必须有钢体,钢体最好是运动的一方。
加上钢体之后每一帧都会有个力的影响。所以会出现抖动的效果,因为他受到的这种情况就要用到void FixedUpdate里面,他就会保证每一帧都是受力均匀的。
感谢触发器老师!!!!
坦克无敌消失后,一发射就自爆了
敌人扎堆 改成RANDOM
延迟2秒 就生不出来坦克了
实际上,你是从屏幕内往外看,2D游戏的UI度数调整和3D刚好相反
2D顺时针旋转90°是-90°
因为,我们是从屏幕内侧往外看(参照坐标系,Z指向屏幕外。)
Instantiate(BulletPrefab, transform.position, transform.rotation);
实例化(物体名,位置,旋转角度)
Input.GetKeyDown(KeyCode.Space)
把一个欧拉角变成一个四元数变量,使得其可以在实例化函数中使用
使用此,API
Quaternion.Euler(transform.eulerAngles+bulletEulerAngles)
渲染优先级(图层。次序、)
Sorting Layer 大层级
order in Layer 小层级,在大层级里设定优先级
发生碰撞的两个物体必须都要持有碰撞器
其中之一(运动者最好持有刚体)
经常不运动的情况下,刚体插件容易休眠,休眠之后就不会进行碰撞检测,所以一般放在运动物体之上。
碰撞器分为2D和3D的两种碰撞器
使用Input.GetAxisRaw/GetAxis 来获取在水平和垂直轴上的输入状态(有输入为1没有则为-1)
使用sprite组建来控制目标显示的图形
通过添加Spirte数组来控制图形的改变和显示
不要忘记锁上刚体组件的Z轴(2D游戏)
fixedUpdate (固定物理帧):
电脑与电脑之间每一帧运行的时间不一致,如果在FIXEDUPDATE里执行,每一帧所占用的时间是固定的,FixedUpdate固定在Update之后执行。
当有刚体影响时,最好在FixedUpdate里执行更新,这可以保证每帧的受力均匀
hとvの値で方向をコントロール
全ての参照はAwakeの中設定
float h=input.getAxisRaw("Hirzontal");
//水平轴输入
float v=input.GetAxisRaw("Vertical");
//垂直轴输入
transform.Translate(vector3.right*h*Player_Movespeed*Time.delteTime,Space.World);
transform.Translate(Vector3.up*v*player_MoveSpeed,Space.World);
动画与动画控制器
自动分割图集(Sprite Editor)
unity 中的 内置 的 Cube 的大小是 长宽高都是1 米