【UNET自学日志】Part14 射击那些僵尸

来源:互联网 发布:sql select 多表查询 编辑:程序博客网 时间:2024/06/05 07:42

射击僵尸和射击玩家(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这个标签需要自己添加)


0 0
原创粉丝点击