Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- public class PointUI : MonoBehaviour {
- public Image image;
- private List<Vector3> newListOfPoints;
- private LineRenderer line;
- // Use this for initialization
- void Start () {
- newListOfPoints = new List<Vector3>();
- Vector3[] pts = new Vector3[5];
- line = GetComponent<LineRenderer>();
- line.GetPositions(pts);
- foreach(Vector3 p in pts) {
- newListOfPoints.Add(p);
- }
- }
- // Update is called once per frame
- void Update () {
- float dist = (Camera.main.transform.position - newListOfPoints[0]).magnitude;
- Rect r = RectTransformToScreenSpace((RectTransform)image.transform);
- Vector3 v3 = new Vector3(r.xMin, r.yMin, dist);
- /*Vector2 v2 = RectTransformUtility.WorldToScreenPoint(Camera.main, image.transform.position);
- Vector3 v3 = new Vector3(v2.x, v2.y, Camera.main.nearClipPlane);*/
- Vector3 val = Camera.main.ScreenToWorldPoint(v3);
- for(int i = 0; i < newListOfPoints.Count; i++) {
- line.SetPosition(i, new Vector3(newListOfPoints[i].x, val.y, newListOfPoints[i].z));
- }
- }
- public static Rect RectTransformToScreenSpace(RectTransform transform) {
- Vector2 size = Vector2.Scale(transform.rect.size, transform.lossyScale);
- Rect rect = new Rect(transform.position.x, transform.position.y, size.x, size.y);
- rect.x -= (transform.pivot.x * size.x);
- rect.y -= ((1.0f - transform.pivot.y) * size.y);
- return rect;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement