26520人加入学习
(150人评价)
Unity2D 初级案例 - 坦克大战(Unity2017.1)

制作于2017年12月23日

价格 免费

给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里面,他就会保证每一帧都是受力均匀的。

[展开全文]

实际上,你是从屏幕内往外看,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 米

[展开全文]