public static void SendHpChg(Character sender, int chgHPGID, int hp, HPChgType chgType) { if (sender.Type != CharacterType.Player) { return; } Player player = sender as Player; NotifyHPChg msg = new NotifyHPChg(); msg.hp = hp; msg.chgType = chgType; msg.uid = chgHPGID; NetWork.NotifyMessage <NotifyHPChg>(player.UserID, STC.STC_HPChg, msg); }
static void OnChgHp(byte[] data) { Scene scn = SceneSystem.Instance.mCurrentScene; if (scn == null) { return; } NotifyHPChg msg = ProtoBufUtils.Deserialize <NotifyHPChg>(data); Character cha = scn.GetCharacter(msg.uid); if (cha == null) { return; } HPChgType hurtType = (HPChgType)msg.chgType; cha.headBar.CreateHeadText(hurtType, msg.hp); }
public void CreateHeadText(HPChgType hurtType, int hurt) { Transform t = UIRoot.mHeadTextPool.Spawn(UIRoot.headTextTransform); t.parent = transform; t.localPosition = Vector3.zero; t.localRotation = Quaternion.identity; t.localScale = new Vector3(0.3f, 0.3f, 0.3f); TweenBase tween = t.GetComponent <TweenBase>(); tween.PlayForward(); if (tween.onFinished == null) { tween.onFinished = new UnityEngine.Events.UnityEvent(); } HeadTextTweenCB cb = new HeadTextTweenCB(); cb.tween = tween; cb.uiRoot = UIRoot; tween.onFinished.AddListener(cb.OnTweenFinish); Text text = t.GetComponent <Text>(); if (hurtType == HPChgType.PhyDamage) { text.color = Color.red; } else if (hurtType == HPChgType.MagDamage) { text.color = new Color(0.8f, 0.0f, 1.0f); } else if (hurtType == HPChgType.Cure) { text.color = Color.green; } text.text = string.Format("{0}", hurt); }