【UNET自學日誌】Part14 射擊那些殭屍

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


發佈了43 篇原創文章 · 獲贊 17 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章