using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
///
/// текст над маркером
///
public class LabelObjectScript : MonoBehaviour
{
//public GameObject target;
RectTransform canvasRect;
GameObject text;
public bool TrackMarker = true;
// Start is called before the first frame update
void Start()
{
//text = Instantiate(Resources.Load("GameObjects/Capsule", typeof(GameObject))) as GameObject;
cameraController = Camera.main.GetComponent();
canvasRect = transform.GetChild(0).GetComponent();
text = transform.GetChild(0).GetChild(0).GetChild(0).gameObject;
}
// Update is called once per frame
void Update()
{
// Offset position above object bbox (in world space)
float offsetPosY = transform.position.y + 1.5f;
// Final position of marker above GO in world space
Vector3 offsetPos = new Vector3(transform.position.x, offsetPosY, transform.position.z);
// Calculate *screen* position (note, not a canvas/recttransform position)
Vector2 canvasPos;
Vector2 screenPoint = Camera.main.WorldToScreenPoint(offsetPos);
// Convert screen position to Canvas / RectTransform space <- leave camera null if Screen Space Overlay
RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasRect, screenPoint, null, out canvasPos);
// Set
//markerRtra.localPosition = canvasPos;
//if(TrackMarker) text.transform.localPosition = canvasPos;
//else
text.transform.parent.transform.localPosition = canvasPos;
}
CameraController cameraController;
void OnMouseDown()
{
if (TrackMarker)
{
cameraController.target = transform;
cameraController.axes = CameraController.RotationAxes.TrackMarker;
}
}
}