2021-04-09 00:48:56 +08:00
|
|
|
|
|
|
|
|
|
using Cal.DataTable;
|
|
|
|
|
using ET;
|
|
|
|
|
using FairyGUI;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
namespace ET
|
|
|
|
|
{
|
|
|
|
|
public class PetUIAwakeSyatem : AwakeSystem<PetUI>
|
|
|
|
|
{
|
|
|
|
|
public override void Awake(PetUI self)
|
|
|
|
|
{
|
|
|
|
|
self.Awake();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public class PetUIDestroySyatem : DestroySystem<PetUI>
|
|
|
|
|
{
|
|
|
|
|
public override void Destroy(PetUI self)
|
|
|
|
|
{
|
|
|
|
|
self.Destroy();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public class PetUI : Entity
|
|
|
|
|
{
|
|
|
|
|
public FUI_PetUI ui;
|
|
|
|
|
private NTexture nTexture;
|
|
|
|
|
private Camera rtCamera;
|
|
|
|
|
private Transform skinTran;
|
|
|
|
|
private RenderTexture rt;
|
|
|
|
|
public void Awake()
|
|
|
|
|
{
|
|
|
|
|
ui = GetParent<FUI_PetUI>();
|
|
|
|
|
AwakeAsync().Coroutine();
|
|
|
|
|
}
|
|
|
|
|
private async ETVoid AwakeAsync()
|
|
|
|
|
{
|
2021-04-10 19:49:32 +08:00
|
|
|
|
var pet = UnitComponent.MyUnit.GetComponent<Pet>();
|
|
|
|
|
ShowSkin(pet.petId).Coroutine();
|
2021-04-09 00:48:56 +08:00
|
|
|
|
await ETTask.CompletedTask;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async ETVoid ShowSkin(int petId)
|
|
|
|
|
{
|
2021-04-10 19:49:32 +08:00
|
|
|
|
if (petId == 0) return;
|
2021-04-09 00:48:56 +08:00
|
|
|
|
PetConfig petConfig = PetConfigCategory.Instance.Get(petId);
|
|
|
|
|
if (petConfig == null) return;
|
|
|
|
|
skinTran = await ResourceViewHelper.LoadPrefabAsync(petConfig.PrefabId);
|
|
|
|
|
if (nTexture == null)
|
|
|
|
|
{
|
|
|
|
|
var characterTran = await ResourceViewHelper.LoadPrefabAsync(Sys_PrefabId.Character);
|
|
|
|
|
characterTran.localPosition = new Vector3(-2100, 0, 0);
|
|
|
|
|
rt = CreateTexture((int)this.ui.m_icon.width, (int)this.ui.m_icon.height);
|
|
|
|
|
rtCamera = characterTran.GetComponentInChildren<Camera>();
|
|
|
|
|
rtCamera.targetTexture = rt;
|
|
|
|
|
nTexture = new NTexture(rt);
|
|
|
|
|
this.ui.m_icon.texture = nTexture;
|
|
|
|
|
}
|
|
|
|
|
rtCamera.enabled = true;
|
|
|
|
|
skinTran.SetParent(rtCamera.transform.parent);
|
2021-04-10 19:49:32 +08:00
|
|
|
|
skinTran.localPosition = new Vector3(0, 1.25f, 5);
|
2021-04-09 00:48:56 +08:00
|
|
|
|
}
|
|
|
|
|
private static RenderTexture CreateTexture(int width, int height)
|
|
|
|
|
{
|
|
|
|
|
return new RenderTexture(width, height, 24, RenderTextureFormat.ARGB32)
|
|
|
|
|
{
|
|
|
|
|
antiAliasing = 1,
|
|
|
|
|
filterMode = FilterMode.Bilinear,
|
|
|
|
|
anisoLevel = 0,
|
|
|
|
|
useMipMap = false
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
public void Destroy()
|
|
|
|
|
{
|
2021-04-10 19:49:32 +08:00
|
|
|
|
if (rtCamera)
|
|
|
|
|
rtCamera.enabled = false;
|
2021-04-09 00:48:56 +08:00
|
|
|
|
ResourceViewHelper.DestoryPrefabAsync(skinTran);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|