还是想着给我的人物加上生命值。
第一个想法
在player character中加入lifeCount ,在父类character中的Death()发生时,调用。
但是,发现,Destory(object)会把原来的那个删除,所以数值始终是3.
所以我换了个想法
第二个想法
在死亡函数发生的时候,针对不同对象发生。
{
if (gameObject.tag == "Player")
{
if (deathCount < 4)
{
deathCount++;
var fx = Instantiate(deathFx, transform.position, Quaternion.Euler(Vector3.zero));
Destroy(fx, 2);
}
else
{
var fx = Instantiate(deathFx, transform.position, Quaternion.Euler(Vector3.zero));
Destroy(fx, 2);
Destroy(gameObject);
}
}
else
{
var fx = Instantiate(deathFx, transform.position, Quaternion.Euler(Vector3.zero));
Destroy(fx, 2);
Destroy(gameObject);
}
}
但不知道为什么,还是行不通。最后在Debug 之后,发现不停的udpdate之后,会影响计算死亡次数。并且是随机性的。
于是 我想 就直接利用他的随机 写一个动态生成的血量。
有了一下代码块
{
//inflicter.Jump();// inflicter 是加害者
health -= damage;
if (health <= 0)//如果血没了就死 如果没死 就把现有的血量数值放在life里面
{
Death();
hud.health.text ="health:0" ;
//if character .is Alive = false -> plan e
}
{
if (hit.gameObject.tag == "AI")
{
//Death();
TakeDamage(hit.gameObject.GetComponent<Character>(), 5);//此处根据碰撞事件长短 很难控制扣血量
}
}
比较简单。可以直接看。
这次的教训是,以后要分清楚怪物和主角。
并且要提前与想好有什么不同的。这样分开来写代码比较合适。
最难的问题就是 如何在2.5d的场景下让相机的镜头里始终有人物
今天没改出来,明天加油吧