// Update is called once per frame void Update() { if (_character == null) { Start(); } _bodyView.AnimationName = _character.m_pInfo.m_pCurrentStateData.animation_name; _bodyView.Frame = _character.m_pInfo.m_iCurrentFrame; this.transform.localPosition = new Vector3(_character.Position.x / 100, _character.Position.y / 100, GameViewDefine.Z_ZSORT_LAYER); Body.localScale = new Vector3(_character.m_pInfo.m_iFacing, 1, 1); float characterAngle = _character.CalcObjectAngle(); Body.eulerAngles = new Vector3(0, 0, characterAngle); AttackAngle = _character.GetFireAngle() + characterAngle; FireAngle.eulerAngles = new Vector3(0, 0, AttackAngle); Hp = _character.m_pInfo.m_iHP; MoveEnergy = _character.m_pInfo.m_iMoveEnergy; AttackEnergy = _character.m_pInfo.m_iBombSpeed; HpProgress.Value = _character.m_pInfo.m_iHP * 1.0f / _character.m_pInfo.m_iMaxHP; ControllerArrows.gameObject.SetActive(_character.m_pInfo.m_bIsInRound & (_emojiCd <= 0) & (_messageCd <= 0)); if (Mathf.Abs(Hp - _preHp) > 1f) { int diff = (int)(_preHp - Hp); _preHp = Hp; _countdown = 1f; Damage.gameObject.SetActive(true); ShowDamage(diff); Damage.localPosition = new Vector3(0, _character.m_pInfo.m_pInstructionData.be_attack_box_max_y / 100.0f + 1f, 0); } if (_countdown <= 0f) { Damage.gameObject.SetActive(false); } else { _countdown -= Time.deltaTime; Damage.localPosition += new Vector3(0f, 2f, 0f) * Time.deltaTime; } if (_character.m_pInfo.EmojiID != 0) { ShowEmoji(_character.m_pInfo.EmojiID); _character.m_pInfo.EmojiID = 0; } if (_emojiCd <= 0f) { Emoji.gameObject.SetActive(false); } else { _emojiCd -= Time.deltaTime; } if (_character.m_pInfo.MessageID != 0) { ShowMessage(_character.m_pInfo.MessageID); _character.m_pInfo.MessageID = 0; } if (_messageCd <= 0f) { MessageBg.gameObject.SetActive(false); } else { _messageCd -= Time.deltaTime; } }