57 lines
1.9 KiB
C#
57 lines
1.9 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
// 날짜 : 2021-01-18 PM 7:04:16
|
|
// 작성자 : Rito
|
|
|
|
public sealed class SkinnedMeshAfterImage : AfterImageBase
|
|
{
|
|
/***********************************************************************
|
|
* Fields
|
|
***********************************************************************/
|
|
#region .
|
|
|
|
private SkinnedMeshRenderer[] TargetSmrArray { get; set; }
|
|
|
|
#endregion
|
|
/***********************************************************************
|
|
* Methods
|
|
***********************************************************************/
|
|
#region .
|
|
protected override void Init()
|
|
{
|
|
// 1. Target Meshes
|
|
if (_containChildrenMeshes)
|
|
TargetSmrArray = GetComponentsInChildren<SkinnedMeshRenderer>();
|
|
else
|
|
TargetSmrArray = new[] { GetComponent<SkinnedMeshRenderer>() };
|
|
|
|
// 2. Queues
|
|
FaderWaitQueue = new Queue<AfterImageFaderBase>();
|
|
FaderRunningQueue = new Queue<AfterImageFaderBase>();
|
|
|
|
// 3. Container
|
|
_faderContainer = new GameObject($"{gameObject.name} AfterImage Container");
|
|
_faderContainer.transform.SetPositionAndRotation(default, default);
|
|
|
|
_data.Mat = _afterImageMaterial;
|
|
}
|
|
|
|
protected override void SetupFader(out AfterImageFaderBase fader)
|
|
{
|
|
GameObject faderGo = new GameObject($"{gameObject.name} AfterImage");
|
|
faderGo.transform.SetParent(_faderContainer.transform);
|
|
|
|
fader = faderGo.AddComponent<SkinnedMeshAfterImageFader>();
|
|
fader.Setup(TargetSmrArray, _data, this);
|
|
|
|
DSUtil.ChangeLayersRecursively(_faderContainer.transform, "Character");
|
|
m_CompleteAction?.Invoke(_faderContainer);
|
|
}
|
|
|
|
Action<GameObject> m_CompleteAction;
|
|
public void Set_Complete(Action<GameObject> _act) { m_CompleteAction = _act; }
|
|
#endregion
|
|
} |