备份CatanBuilding瘦身独立工程
This commit is contained in:
41
Assets/Scripts/UIExtend/ScreenSpaceTrail.cs
Normal file
41
Assets/Scripts/UIExtend/ScreenSpaceTrail.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
[RequireComponent(typeof(RectTransform), typeof(TrailRenderer))]
|
||||
public class ScreenSpaceTrail : MonoBehaviour
|
||||
{
|
||||
private RectTransform rectTransform;
|
||||
private TrailRenderer trail;
|
||||
private Camera uiCamera;
|
||||
|
||||
void Start()
|
||||
{
|
||||
rectTransform = GetComponent<RectTransform>();
|
||||
trail = GetComponent<TrailRenderer>();
|
||||
uiCamera = GetComponentInParent<Canvas>().worldCamera;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
UpdateTrailPosition();
|
||||
}
|
||||
|
||||
void UpdateTrailPosition()
|
||||
{
|
||||
// 将UI坐标转换为世界坐标
|
||||
Vector3 screenPos = RectTransformUtility.WorldToScreenPoint(
|
||||
uiCamera,
|
||||
rectTransform.position);
|
||||
|
||||
// 设置Z值在相机近裁剪面稍前方
|
||||
Vector3 worldPos = uiCamera.ScreenToWorldPoint(
|
||||
new Vector3(screenPos.x, screenPos.y, uiCamera.nearClipPlane + 0.1f));
|
||||
|
||||
transform.position = worldPos;
|
||||
}
|
||||
|
||||
public void ClearTrail()
|
||||
{
|
||||
trail.Clear();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user