public class GuideManager : MonoBehaviour
{
public static GuideManager Instance = null;
private RectTransform canvas;
private RectTransform ImageRoot;
private Animator handAnim;
private readonly string stateName = "xxx";
private void Awake()
{
Instance = this;
DontDestroyOnLoad(this);
canvas = GetComponent<RectTransform>();
ImageRoot = transform.Find("ImageRoot").GetComponent<RectTransform>();
handAnim = ImageRoot.Find("xxx").GetComponent<Animator>();
}
private void Start()
{
GetComponent<CanvasScaler>().matchWidthOrHeight = x;
ShowObj(false);
}
private void PlayGuideClickAnim()
{
if (handAnim != null)
{
handAnim.Play(stateName);
}
}
private void ShowObj(bool isShow)
{
if (gameObject.activeSelf != isShow)
{
gameObject.SetActive(isShow);
}
}
public void Show(GameObject worldTran, Camera renderCam)
{
var screenpoint = renderCam.WorldToScreenPoint(worldTran.transform.position);
Vector2 position = Vector2.zero;
if (RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas, screenpoint, null, out position))
{
ImageRoot.anchoredPosition = position;
}
ShowObj(true);
PlayGuideClickAnim();
}
public void Show(GameObject uiTran)
{
Vector2 convertedPos = Vector2.zero;
if (RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas, UIManager.uiCamera.WorldToScreenPoint(uiTran.transform.position), null, out convertedPos))
{
ImageRoot.anchoredPosition = convertedPos;
}
ShowObj(true);
PlayGuideClickAnim();
}
public void Close()
{
ShowObj(false);
}
public void SetAnchoredPosition(Vector2 pos)
{
ImageRoot.anchoredPosition = pos;
}
}