public void showHeroLifePlate(GOAppear.AppearInfo info) { String path = null; if (GameStart.heroid == info.obj_type_id) { path = "Prefab/HeroLifePlateGreen"; } else { path = "Prefab/HeroLifePlateRed"; } if (mHasLifeBar) { BloodBar.SetVisible(true); return; } mHasLifeBar = true; GameObject heroLifeModel = Resources.Load(path) as GameObject; heroLife = GameObject.Instantiate(heroLifeModel) as GameObject; heroLifeDic.Add((int)info.obj_type_id, heroLife); hpSprite = heroLife.transform.Find("Control_Hp/Foreground").GetComponent <UISprite>();//绿 mpSprite = heroLife.transform.Find("Control_Mp/Foreground").GetComponent <UISprite>(); //Debug.LogError("showHeroLifePlate" + info.obj_type_id); }
//隐藏血条 public void HideBloodBar() { if (BloodBar != null) { BloodBar.SetVisible(false); } }
public void AddStatus(BodyPart bodyPart) { GameObject statusGameObject = Instantiate(statusPrefab, statusPanel.transform); BodyPartStatus status = statusGameObject.GetComponent <BodyPartStatus>(); status.name = bodyPart.name; if (bodyPart is Organ) { status.partName.text = " " + bodyPart.name; } else { status.partName.text = bodyPart.name; } BloodBar bloodBar = status.bloodBar; OxygenBar oxygenBar = status.oxygenBar; HealthBar healthBar = status.healthBar; bloodBar.bodyPart = bodyPart; bloodBar.MinMax(); oxygenBar.bodyPart = bodyPart; oxygenBar.MinMax(); healthBar.bodyPart = bodyPart; healthBar.MinMax(); }
void Start() { this.bloodBar = ScriptEF.CreateBloodBar(gameObject); gameObject.animation.wrapMode = WrapMode.Once; cameraCtrl = Camera.main.GetComponent <CameraCtrl>(); myController = GetComponent <CharacterController>(); initObj(); }
//隐藏血条 public void HideBloodBar() { if (BloodBar != null) { BloodBar.SetVisible(false); mHasLifeBar = false; } }
///// <summary> ///// 当绘制单位时设置shader ///// TODO 解决加载单位没有shader问题 ///// </summary> //private void OnWillRenderObject() //{ // if (!isSetShader) // { // isSetShader = true; // var rander = GetComponent<Renderer>(); // if (rander != null) // { // var core = PacketManage.Single.GetPacket("core"); // if (core != null) // { // var shader = core.Load("Avatar_N.shader") as Shader; // if (shader != null) // { // rander.material.shader = shader; // } // } // } // } //} /// <summary> /// 加载 /// </summary> private void LoadSource() { NowWorldCamera = GameObject.Find("/PTZCamera/SceneryCamera").GetComponent <Camera>(); Head = transform.Find("head").gameObject.transform; GameObject parent = GameObject.Find("ui_fightU/bloodParent"); bloodBar = GameObjectExtension.InstantiateFromPacket("ui_fightu", "blood.prefab", parent).transform; bloodBar.localPosition = Vector3.zero; bloodBar.localScale = Vector3.one; bloodBarCom = bloodBar.gameObject.AddComponent <BloodBar>(); //ModelRander = gameObject.GetComponent<MFAModelRender>(); }
public static BloodBar CreateBloodBar(GameObject parent) { Transform pt = parent.transform; GameObject heroPanel = GameObject.Instantiate(ObjectManager.bloodBar, pt.position, pt.rotation) as GameObject; heroPanel.transform.localScale = new Vector3(0.04f, 0.04f, 0.04f); BloodBar bloodBar = heroPanel.GetComponent <BloodBar>(); bloodBar.setParent(parent); bloodBar.Damaged(100, 100); bloodBar.distance = 2f; return(bloodBar); }
/// <summary> /// 目标受到伤害或者加血等的血条上的文字效果 /// </summary> /// <param name="packer">生命值变更包装类</param> public static void ShowHurtNum(FightManager.HealthChangePacker packer) { if (packer.ObjType == ObjectID.ObjectType.MyJiDi || packer.ObjType == ObjectID.ObjectType.EnemyJiDi) { Tools.CallMethod("userInfo_controller", "changeJiDiHP", (int)packer.ObjType, packer.CurrentHp, packer.TotalHp); } else { int hurtNum_int = (int)packer.ChangeValue; BloodBar mgo = packer.GameObj.GetComponent <RanderControl>().bloodBarCom; Transform deltaHP = GameObjectExtension.InstantiateFromPacket("ui_fightu", "deltaHP.prefab", mgo.gameObject).transform; deltaHP.localPosition = new Vector3(Random.value * 50 - 25, -Random.value * 20, 0); EventDelegate _event = new EventDelegate(mgo, "DestroyDeltaHP"); _event.parameters[0] = new EventDelegate.Parameter(deltaHP); deltaHP.GetChild(0).GetComponent <TweenPosition>().AddOnFinished(_event); switch (packer.HurtType) { case FightManager.HurtType.NormalAttack: //普通 deltaHP.GetChild(0).GetComponent <UISprite>().spriteName = null; deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().color = Color.white; deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().text = "" + hurtNum_int; break; case FightManager.HurtType.Crit: //暴击 deltaHP.GetChild(0).GetComponent <UISprite>().spriteName = "zhandou_yuan_xuanzhong"; deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().color = Color.red; deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().text = "" + hurtNum_int; break; case FightManager.HurtType.SkillAttack: //技能 deltaHP.GetChild(0).GetComponent <UISprite>().spriteName = null; deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().color = Color.blue; deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().text = "" + hurtNum_int; break; case FightManager.HurtType.Miss: //miss deltaHP.GetChild(0).GetComponent <UISprite>().spriteName = null; deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().color = Color.gray; deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().text = "miss"; break; case FightManager.HurtType.Cure: //治疗 deltaHP.GetChild(0).GetComponent <UISprite>().spriteName = null; deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().color = Color.green; deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().text = "+" + hurtNum_int; break; } } }
//显示血条 public void ShowBloodBar() { if (BloodBar != null) { BloodBar.SetVisible(true); this.OnUpdateHp(); //Player需要更新Mp if (entityType == EntityType.Player) { BloodBarPlayer BloodBarPlayer = BloodBar as BloodBarPlayer; BloodBarPlayer.UpdateMp(); } } }
// public void UpdateHpChange(byte reason, float curHp) { float changeValue = Hp - curHp; SetHp((float)curHp); if (BloodBar != null) { BloodBar.UpdateHP();//这是血条管理器中血条的更新 } //如果变化原因不是恢复 并且血条不为空 if (reason != HpUpdateOfRecover && BloodBar != null) { BloodBar.XueTiaoDmgShow(Hp, changeValue, HpMax);//血条缓慢扣除 指的是绿色血条后边的灰色血条 } }
static int set_bloodBarCom(IntPtr L) { object o = null; try { o = ToLua.ToObject(L, 1); RanderControl obj = (RanderControl)o; BloodBar arg0 = (BloodBar)ToLua.CheckUnityObject(L, 2, typeof(BloodBar)); obj.bloodBarCom = arg0; return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index bloodBarCom on a nil value" : e.Message)); } }
static int get_bloodBarCom(IntPtr L) { object o = null; try { o = ToLua.ToObject(L, 1); RanderControl obj = (RanderControl)o; BloodBar ret = obj.bloodBarCom; ToLua.Push(L, ret); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index bloodBarCom on a nil value" : e.Message)); } }
IEnumerator GetBlood(int viewID, int crtBlood, int maxBlood, string name) { while (GameObject.Find("BloodCanvas") == null) { yield return(0); } Debug.Log("收到" + viewID); //实例化血条 GameObject go = Instantiate(Resources.Load <GameObject>("Blood")); //查找所有玩家 GameObject[] players = GameObject.FindGameObjectsWithTag("Player"); //根据viewID查找目标玩家 for (int i = 0; i < players.Length; i++) { //找到目标玩家 if (players[i].GetComponent <PhotonView>().ViewID == viewID) { //设置血条跟随的玩家 go.GetComponent <BloodBar>().player = players[i].transform; players[i].GetComponent <PlayerBlood>().bBarGo = go; //查找画布 canvas = GameObject.Find("BloodCanvas"); //把血条放在画布下 go.transform.SetParent(canvas.transform); BloodBar bBar = go.GetComponent <BloodBar>(); bBar.SetMaxBlood(maxBlood); bBar.SetBlood(crtBlood); bBar.SetName(name); bBar.selfId = viewID; players[i].GetComponent <PlayerBlood>().bloodValue = maxBlood; break; } } //实例化血条 // bloodBarGo = Instantiate(Resources.Load<GameObject>("Blood")); //bloodBarGo = PhotonNetwork.Instantiate("Blood", Vector3.zero, Quaternion.identity); //pv.RPC("SetBloodBar",RpcTarget.AllBufferedViaServer, bloodBarGo.GetComponent<PhotonView>().ViewID); }
public virtual void Init(BattleUnit bu) { m_BattleUnit = bu; RegEvent(); string res; if (bu.IsPlayerSide) { res = ConfigMng.Instance.GetConfig <ClientHeroCfg> ().HeroClientData [bu.OrgData.unit_id].res_path; } else { res = ConfigMng.Instance.GetConfig <ClientHeroCfg> ().MonsterClientData [bu.OrgData.unit_id].res_path; } m_ModelObj = CommonUtil.ResourceMng.Instance.GetResource(res, CommonUtil.ResourceType.Model) as GameObject; if (m_ModelObj == null) { CommonLogger.LogError("Model Can't loaded: " + res); return; } m_AniCtrl = m_ModelObj.GetComponent <Animator> (); StandPos p = GameHelper.Game.FindEmptyPos(bu.IsPlayerSide ? StandType.Player : StandType.Enemy); if (p != null) { m_ModelObj.transform.position = p.transform.position; m_ModelObj.transform.localRotation = p.transform.localRotation; GameHelper.Game.OccupyStandPos(p, bu.OrgData.unit_id); m_StandPos = p; m_StandPos.SetTapHero(this); } InitTaps(); m_BloodBar = (UIManager.Instance.AddUI("UI/BloodBar") as GameObject).GetComponent <BloodBar>(); m_StateProgress = (UIManager.Instance.AddUI("UI/StateProgressBar") as GameObject).GetComponent <UIProgressBar>(); m_EmpowerProgress = (UIManager.Instance.AddUI("UI/EmpowerProgressBar") as GameObject).GetComponent <UIProgressBar>(); CheckStateProgressBarShow(); UpdateBloodBarPos(); }
// Start is called before the first frame update void Start() { bloodBar1 = GameObject.FindWithTag("BloodBar_1").GetComponent <BloodBar>(); bloodBar2 = GameObject.FindWithTag("BloodBar_2").GetComponent <BloodBar>(); hurtEffect = GameObject.FindWithTag("HurtEffect").GetComponent <HurtEffect>(); }
private void OnEnable() { progress = serializedObject.FindProperty("_progress"); _bloodBar = (BloodBar)target; }