// Start is called before the first frame update void Start() { //获取当前场景中的怪物属性脚本 gwsx = (怪物属性)gameObject.transform.GetComponent(当前怪物属性脚本名); //获取所有怪物预制体中的怪物战斗脚本 GameObject[] 怪物预制体们 = GameObject.FindGameObjectsWithTag("怪物"); for (int i = 0; i < 怪物预制体们.Length; i++) { gwzd = 怪物预制体们[i].GetComponent <怪物战斗>(); } }
public int 攻击(怪物战斗 gw) { transform.position = Vector3.MoveTowards(transform.position, 攻击坐标, 20); //判断怪物是否还有生命 if (gw.剩余血量 > 0) { //攻击 int 扣血_ = 总_攻击力 - gw.防御力; //判断是否破防,不破防伤害为0 扣血 = 扣血_ >= 0 ? 扣血_ : 0; gw.扣血显示(扣血); } else { //自动攻击转移目标 if (自动攻击) { } } gw.剩余血量 -= 扣血; return(扣血); }
// Update is called once per frame void FixedUpdate() { 血条.value = 剩余血量; //判断自己是否还有生命 if (剩余血量 <= 0) { 猪脚失败(); } //位置的移动(模拟攻击动画) transform.position = Vector3.MoveTowards(transform.position, 原来坐标, 20); //判断攻击状态 if (isAttack) { 攻击目标 = GameObject.Find(攻击目标名字); //攻击目标丢失,停止攻击,攻击目标初始化(经优化,可删) /* if (攻击目标 == null) * { 攻击目标 = GameObject.Find("初始化"); * isAttack = false; * }*/ gw = 攻击目标.GetComponent <怪物战斗>(); /// /// 攻击 /// //代码控制的攻击动画,有bug,待改进 if (攻击速度_初始 <= 0) { 攻击(gw); 攻击速度_初始 = 总_攻击速度; } 攻击速度_初始 -= Time.fixedDeltaTime; } }
// Start is called before the first frame update void Start() { gwzd = gameObject.transform.GetChild(0).gameObject.GetComponent <怪物战斗>(); }
private void Start() { gwzd = gameObject.transform.parent.GetComponent <怪物战斗>(); rwzd = GameObject.Find("牧师").GetComponent <人物战斗>(); }
public void 怪物赋值(怪物战斗 gwzd) { //因为random在同一时间内生成的随机数是相同的.所以不能简单的new Random 随机类 = new Random(Guid.NewGuid().GetHashCode()); int 随机数 = 随机类.Next(1, 100 + 1); //Debug.Log(随机数); //本类属性赋值; if (随机数 >= 1 && 随机数 <= 怪物1出现概率) { gwsx.怪物一赋值(this); } else if (随机数 > 怪物1出现概率 && 随机数 <= (怪物1出现概率 + 怪物2出现概率)) { gwsx.怪物二赋值(this); } else if ((怪物1出现概率 + 怪物2出现概率) < 随机数 && 随机数 <= (怪物1出现概率 + 怪物2出现概率 + 怪物3出现概率)) { gwsx.怪物三赋值(this); } else { gwsx.怪物四赋值(this); } //等级随机 if (最低等级 == 最高等级) { 随机数等级 = 最低等级; } else { 随机数等级 = 随机类.Next(最低等级, 最高等级 + 1); } //怪物战斗脚本属性赋值 gwzd.主动攻击 = 是否主动攻击; gwzd.等级 = 随机数等级; gwzd.血量 = 基础血量 + (随机数等级 * 血量成长); gwzd.攻击力 = 基础攻击力 + (随机数等级 * 攻击力成长); gwzd.防御力 = 基础防御力 + (随机数等级 * 防御力成长); gwzd.攻击速度 = 攻击速度; gwzd.经验值 = 基础经验 + 经验系数 * 随机数等级; gwzd.必掉材料 = 必掉材料; //怪物名字赋值与变色 Text 字文本 = gwzd.gameObject.transform.Find("按钮").transform.Find("名字").GetComponent <Text>(); 字文本.text = 怪物名字 + "Lv" + 随机数等级; //1阶怪名字变黑色 if (怪物位阶 == 1) { ColorUtility.TryParseHtmlString("#323232", out nowColor); } //2阶精英怪名字变蓝色 if (怪物位阶 == 2) { ColorUtility.TryParseHtmlString("#114CEC", out nowColor); } //3阶boss怪名字变紫色 else if (怪物位阶 == 3) { ColorUtility.TryParseHtmlString("#CB1EB2", out nowColor); } //3阶神话怪名字变红色 else if (怪物位阶 == 4) { ColorUtility.TryParseHtmlString("#F60202", out nowColor); } 字文本.color = nowColor; }