射擊殭屍和射擊玩家(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這個標籤需要自己添加)