Advertisement
Guest User

FollowUIImage

a guest
Jan 7th, 2018
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.46 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5.  
  6.  
  7. public class PointUI : MonoBehaviour {
  8.     public Image image;
  9.     private List<Vector3> newListOfPoints;
  10.     private LineRenderer line;
  11.  
  12.     // Use this for initialization
  13.     void Start () {
  14.         newListOfPoints = new List<Vector3>();
  15.         Vector3[] pts = new Vector3[5];
  16.         line = GetComponent<LineRenderer>();
  17.         line.GetPositions(pts);
  18.         foreach(Vector3 p in pts) {
  19.             newListOfPoints.Add(p);
  20.         }
  21.     }
  22.    
  23.     // Update is called once per frame
  24.     void Update () {
  25.         float dist = (Camera.main.transform.position - newListOfPoints[0]).magnitude;
  26.         Rect r = RectTransformToScreenSpace((RectTransform)image.transform);
  27.         Vector3 v3 = new Vector3(r.xMin, r.yMin, dist);
  28.         /*Vector2 v2 = RectTransformUtility.WorldToScreenPoint(Camera.main, image.transform.position);
  29.         Vector3 v3 = new Vector3(v2.x, v2.y, Camera.main.nearClipPlane);*/
  30.         Vector3 val = Camera.main.ScreenToWorldPoint(v3);
  31.  
  32.         for(int i = 0; i < newListOfPoints.Count; i++) {
  33.             line.SetPosition(i, new Vector3(newListOfPoints[i].x, val.y, newListOfPoints[i].z));
  34.         }
  35.     }
  36.  
  37.     public static Rect RectTransformToScreenSpace(RectTransform transform) {
  38.         Vector2 size = Vector2.Scale(transform.rect.size, transform.lossyScale);
  39.         Rect rect = new Rect(transform.position.x, transform.position.y, size.x, size.y);
  40.         rect.x -= (transform.pivot.x * size.x);
  41.         rect.y -= ((1.0f - transform.pivot.y) * size.y);
  42.         return rect;
  43.     }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement