射击僵尸和射击玩家(Part9 造成伤害)也是同样的道理,不再赘述
新建脚本Zombie_Health添加到Zombie的预制件上
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
public class Zombie_Health : NetworkBehaviour {
private int health = 50;
public void DeductHealth(int dmg)
{
health -= dmg;
CheckHealth();
}
void CheckHealth()
{
if (health <= 0)
{
Destroy(gameObject);
}
}
}
在Player_Shoot脚本中做如下修改(修改Shoot函数中的内容以及添加一个新的函数)
void Shoot()
{
if (Physics.Raycast(camTransform.TransformPoint(0, 0, 0.5f), camTransform.forward, out hit, range))
{
//Debug.Log(hit.transform.tag);
if (hit.transform.tag == "Player")
{
string uIdentity = hit.transform.name;
CmdTellServerWhoWasShot(uIdentity, damage);
}
if (hit.transform.tag == "Zombie")
{
string uIdentity = hit.transform.name;
CmdTellServerWhichZombieWasShot(uIdentity, damage);
}
}
}
[Command]
void CmdTellServerWhichZombieWasShot(string uniqueID, int dmg)
{
GameObject go = GameObject.Find(uniqueID);
go.GetComponent<Zombie_Health>().DeductHealth(dmg);
}
将预制件Zombie的tag改为Zombie即可(Zombie这个标签需要自己添加)