using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace Animmal.Animmals1
|
|
{
|
|
[System.Serializable]
|
|
public class SKINS
|
|
{
|
|
public List<Transform> Skins = new List<Transform>();
|
|
public void SetSkin(int _SkinID)
|
|
{
|
|
for (int i = 0; i < Skins.Count; i++)
|
|
{
|
|
if (i == _SkinID)
|
|
Skins[i].gameObject.SetActive(true);
|
|
else
|
|
Skins[i].gameObject.SetActive(false);
|
|
}
|
|
}
|
|
public void HideAll()
|
|
{
|
|
for (int i = 0; i < Skins.Count; i++)
|
|
{
|
|
Skins[i].gameObject.SetActive(false);
|
|
}
|
|
}
|
|
}
|
|
public class AssetsObject : MonoBehaviour
|
|
{
|
|
|
|
public List<SKINS> Prefabs = new List<SKINS>();
|
|
|
|
int CurrentID = 0;
|
|
int CurrentSkin = 0;
|
|
public void Init(List<AssetDB> _AssetDB)
|
|
{
|
|
for (int i = 0; i < _AssetDB.Count; i++)
|
|
{
|
|
SKINS _Skin = new SKINS();
|
|
for (int j = 0; j < _AssetDB[i].AssetSkins.Skins.Count; j++)
|
|
{
|
|
Transform _SkinItem = Instantiate(_AssetDB[i].AssetSkins.Skins[j], transform) as Transform;
|
|
_Skin.Skins.Add(_SkinItem);
|
|
}
|
|
Prefabs.Add(_Skin);
|
|
if (i == 0)
|
|
Prefabs[i].SetSkin(0);
|
|
else
|
|
{
|
|
Prefabs[i].HideAll();
|
|
}
|
|
}
|
|
}
|
|
|
|
public void SetObject(int _ObjectID)
|
|
{
|
|
Prefabs[CurrentID].HideAll();
|
|
CurrentID = _ObjectID;
|
|
SetSkin(0);
|
|
}
|
|
|
|
public int GetObjectTriangleCount()
|
|
{
|
|
int _Count = 0;
|
|
|
|
|
|
Component[] _SkinnedMeshRenderers;
|
|
|
|
|
|
_SkinnedMeshRenderers = Prefabs[CurrentID].Skins[CurrentSkin].gameObject.GetComponentsInChildren<SkinnedMeshRenderer>();
|
|
|
|
foreach (SkinnedMeshRenderer _SkinnedMesh in _SkinnedMeshRenderers)
|
|
_Count += _SkinnedMesh.sharedMesh.triangles.Length / 3;
|
|
|
|
return _Count;
|
|
|
|
}
|
|
|
|
public void SetAnimation(string _AnimTrigger)
|
|
{
|
|
Prefabs[CurrentID].Skins[CurrentSkin].gameObject.GetComponent<Animator>().SetTrigger(_AnimTrigger);
|
|
}
|
|
|
|
|
|
public void SetSkin(int _Skin)
|
|
{
|
|
CurrentSkin = _Skin;
|
|
Prefabs[CurrentID].SetSkin(_Skin);
|
|
}
|
|
}
|
|
}
|