有损坏功能:
public override void ReceiveDamage()
{
Lives--;
rigidbody.AddForce(transform.up * 4.0F, ForceMode2D.Impulse);
if(lives == 0)
{
Application.LoadLevel(Application.loadedLevel);
}
}
我收到的敌人子弹造成的伤害:
private void OnTriggerEnter2D(Collider2D collider)
{
Vector3 position = transform.position;
Unit unit = collider.GetComponent<Unit>();
Bullet bullet = collider.GetComponent<Bullet>();
if (unit is Heart)
{
lives++;
}
if (unit)
this.Die();
if (bullet)
this.ReceiveDamage();
}
}
然而,问题是我也受到角色发射的子弹的伤害。告诉我如何开处方以使您的子弹不会造成伤害?
给你的敌人贴上标签,比如敌人。并进行检查,如果对象具有敌人标签,则造成伤害。虽然不适合网游...
为了不让朋友和敌人陷入困境,请在 Unity 中为他们分配不同的层。此外,在物理设置中,关闭您自己的层与其他人的层之间的交集。你不需要检查任何东西,一切都会被引擎破坏,来自一层的对象不会知道它们相交,但朋友和敌人之间的相交会继续工作。
只是不要忘记在创建子弹时分配正确的图层,以便清楚是谁发射的。
如果有必要自己击中,则所有者的标志从子弹处开始,我们用指向射击源的链接填充它,并且在发生碰撞时,首先检查您是否没有不要自己开枪。