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

制作于2017年12月23日

价格 免费

玩家无敌方法与死亡方法的编写

在外面封装一个方法 die

第一步是产生爆炸特效   先要拿到特效的预制体(在外面拿到)

public GameObject explosionPrefab;  要不要加大写

里面也是实例化的方法 与子弹很像

Instantiate(explosionPrefab,transform

在爆炸特效上添加消失脚本

start 里 加销毁 Destroy(gameObject,0.167f);可以加时间

再在玩家物件里 把Explosion预制件拖入script组件的公共变量的空格里

第二步 死亡 Destroy(gameObject);

出生无敌保护

又在外面加一个的bool值变量

private bool isDefended=true;  bool值默认为false

受到保护时不会被销毁

再在外面加一个计时器

private float defendTimeVal=3;

再在update里 加上判定方法

如果处于保护状态 受保护时间累减

再判定如果时间小于等于0

再将保护变量改为flase

然后需要屏蔽掉死亡方法中的两个小方法

直接在其前面接个判定其是否受保护的方法是的话直接return掉

再去拿到受保护特效的预制体 才发现预制体的名字好像是随意定的,到时候只需拖进去就行了

Public GameObject defendEffectPrefab;

再把护盾套在玩家身上

先把shield拖到player下面 再reset一下(盾的transform的右边)

怎么让他显示与关闭呢,先把预制件拖进去

再无敌判定下面加上一个专门的语法 来控制

defendEffectPrefab.SetActive(true);

这样就可以在外面控制了

关闭 在flase的关闭语句中 把他改为flase

 

再在bullet的标签switch里 tank的case下

 

 

[展开全文]

死亡方法

public GameObject explosionprefab;

Instantiate(explosionprefab, transform.position, transform.rotation);

Destroy(动画特效)

collision.SendMessage('Die')

[展开全文]

transform.position,transform.rotaion

Destroy(gameObject, 0.2f);

explosionPrefab

private fooat defendTimeVal;

defendEffectPrefab

[展开全文]

death方法。

collision.sendMessage("Die");给自身发送消息。执行某个函数。

 

 

[展开全文]

熟练使用bool值的应用

控制组件的显示和关闭

SetActive(true); 显示

SetActive(false); 关闭

[展开全文]

1.写一个爆炸方法

2.爆炸脚本,定时销毁

3.SendMessage传递方法

4.玩家的无敌方法:ISdefended;defended time ;在update中调用。判断是否处于保护状态,保护时间累减

[展开全文]

Destroy(gameObject,float time);多久消亡物体对象.

[展开全文]
  1. 将Defended特效拖到player下是拖游戏物体,不是拖预制体
  2. Defended reset完后无需点apply,在Player那点apply
[展开全文]

授课教师

SiKi学院老师

课程特色

图文(2)
视频(31)
下载资料(1)