using AX.MessageSystem;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class DeviceFollowTarget : MonoBehaviour
{
    public Transform target;
    public Camera uiCamera;
    private float offset_Y = 2.5f;

    private void Start()
    {
        GetComponent<Button>().onClick.AddListener(ViewClick);
        uiCamera = GameObject.Find("Canvas").GetComponent<Canvas>().worldCamera;
    }
    public void ViewClick()
    {
        MessageDispatcher.SendMessage("FLOORNUMBER", target.GetComponent<DeviceObj>().floorId, "Floor");

        Camera.main.GetComponent<CameraOrbit>().SetCameraView(target.position, 15);
        //if (target)
        //{
        //    target.GetComponent<DeviceObj>().ShowList();
        //}
    }

    private Vector2 WorldPosToUIPos(Vector3 worldPos)
    {
        Vector2 world2ScreenPos = Camera.main.WorldToScreenPoint(worldPos);
        Vector2 uiPos = new Vector2();
        RectTransformUtility.ScreenPointToLocalPointInRectangle(transform.parent.GetComponent<RectTransform>(), world2ScreenPos, uiCamera, out uiPos);
        return uiPos;
    }

    private void LateUpdate()
    {
        if (gameObject.activeSelf && target)
        {
            GetComponent<RectTransform>().anchoredPosition =
                WorldPosToUIPos(new Vector3(target.transform.position.x, target.transform.position.y + offset_Y, target.transform.position.z));
        }
    }

    public void SetTarget(DeviceObj deviceObj)
    {
        target = deviceObj.transform;
    }
}