using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class NewBehaviourScript : MonoBehaviour
{
public Image image1;
public Image image2;
public Image image3;
public Canvas canvas;
public void Start()
{
var p1 = UTW(image2.gameObject);
image3.rectTransform.anchoredPosition = WTU(p1);
}
// UGUI 转 世界坐标
public Vector3 UTW(GameObject obj)
{
Vector3 scr = RectTransformUtility.WorldToScreenPoint(canvas.worldCamera, obj.transform.position);
scr.z = Mathf.Abs(Camera.main.transform.position.z - transform.position.z);
return Camera.main.ScreenToWorldPoint(scr);
}
// 屏幕坐标转 UGUI 坐标
public Vector3 WTU(Vector3 p)
{
Vector2 pos;
RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, Camera.main.WorldToScreenPoint(p), canvas.worldCamera, out pos);
return pos;
}
// Update is called once per frame
void Update()
{
}
}
imag3(蓝色) 设置到 image2(红色) 坐标位置