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(); // _SetShadowCast(); // _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 _SetShadowCast() { var renderers = _activeObj.GetComponentsInChildren(); for (int i = 0; i < renderers.Length; i++) { var renderer = renderers[i]; renderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; } } 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).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); } } }