using System.Collections.Generic; using Framework; using UnityEngine; namespace Gameplay.Unit.Data { public class UnitViewData { public GameUnit owner; public bool isShow; private GameObject _activeObj; public UnitViewData(GameUnit owner) { this.owner = owner; _SetActiveObj(); _SetAnimator(); isShow = true; } private void _SetAnimator() { var animators = _activeObj.GetComponentsInChildren(); for (int i = 0; i < animators.Length; i++) { var animator = animators[i]; animator.cullingMode = AnimatorCullingMode.CullUpdateTransforms; } } private void _SetActiveObj() { switch (owner.gameunitType) { case EGameUnitType.Character: _FindCharacterData(); break; case EGameUnitType.Vehicle: _activeObj = owner.Node.GameObject.transform.GetChild(0).gameObject; break; default: _activeObj = owner.Node.GameObject; break; } } private void _FindCharacterData() { var parentTrans = owner.Node.GameObject.transform.GetChild(0); for (int i = 0; i < parentTrans.childCount; i++) { var child = parentTrans.GetChild(i); if (child.name.StartsWith("CombineObj_")) { _activeObj = child.gameObject; return; } } } public void SetShow(bool setShow) { if (isShow == setShow) return; isShow = setShow; EventManager.Instance.Send(EventManager.EventName.INFIGHT_UNIT_VISIBLE_CHANGE, owner); _activeObj.SetActive(isShow); } } }