using UnityEngine;
|
|
public class SelectionManager
|
{
|
private static FacingTargetY s_Red;
|
private static FacingTargetY s_Green;
|
private static GActor s_Owner;
|
|
public enum E_Type
|
{
|
None,
|
Red,
|
Green
|
}
|
|
public static E_Type s_Type;
|
|
public static void Initiailze()
|
{
|
if (s_Red == null)
|
{
|
s_Red = SFXPlayUtility.Instance.PlayBattleEffect(999998,
|
Constants.Special_Hide_Position,
|
Vector3.forward).
|
AddMissingComponent<FacingTargetY>();
|
Object.DontDestroyOnLoad(s_Red.gameObject);
|
}
|
if (s_Green == null)
|
{
|
s_Green = SFXPlayUtility.Instance.PlayBattleEffect(999997,
|
Constants.Special_Hide_Position,
|
Vector3.forward).
|
AddMissingComponent<FacingTargetY>();
|
Object.DontDestroyOnLoad(s_Green.gameObject);
|
}
|
}
|
|
public static void Request(E_Type type, GActor owner, float scale = 1)
|
{
|
if (owner == null)
|
{
|
return;
|
}
|
|
if (s_Type == type && s_Owner == owner)
|
{
|
return;
|
}
|
|
switch (type)
|
{
|
case E_Type.Red:
|
Release(E_Type.Green);
|
s_Red.transform.SetParentEx(owner.Root, Vector3.zero, Quaternion.identity, Vector3.one * scale);
|
s_Red.target = CameraController.Instance.CameraObject.transform;
|
break;
|
case E_Type.Green:
|
Release(E_Type.Red);
|
s_Green.transform.SetParentEx(owner.Root, Vector3.zero, Quaternion.identity, Vector3.one * scale);
|
s_Green.target = CameraController.Instance.CameraObject.transform;
|
break;
|
}
|
|
s_Type = type;
|
s_Owner = owner;
|
}
|
|
public static void Release(E_Type type)
|
{
|
switch (type)
|
{
|
case E_Type.Red:
|
s_Red.transform.SetParent(null);
|
s_Red.transform.localScale = Vector3.one;
|
s_Red.transform.position = Constants.Special_Hide_Position;
|
break;
|
case E_Type.Green:
|
s_Green.transform.SetParent(null);
|
s_Green.transform.localScale = Vector3.one;
|
s_Green.transform.position = Constants.Special_Hide_Position;
|
break;
|
}
|
|
s_Type = E_Type.None;
|
}
|
}
|