NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Unit/Data/UnitViewData.cs

73 lines
2.0 KiB
C#

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<Animator>();
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);
}
}
}