【发布时间】:2020-07-22 17:46:43
【问题描述】:
我正在使用线条渲染器和线条渲染器末尾的圆形 png。当光线投射到碰撞对象时,圆形 png 出现在行尾。我面临的问题是;如果物体在 10 米外,我可以很容易地看到圆形 png,但如果对撞机小于 4 米,则图像太大。我如何重新缩放图像,以便如果它更远,它保持不变,如果它靠近,那么它会缩小,以便它看起来无论远近都相似。
Default Scale of the GreenPoint_Raycast: X, Y, Z: 0.001323662
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class raycastLineRenderer : MonoBehaviour {
public GameObject lineRenderer;
RaycastHit hit;
public GameObject RightHandAnchor;
public GameObject GreenPoint_Raycast;
// Start is called before the first frame update
void Start () {
}
// Update is called once per frame
void Update () {
int layerMask = LayerMask.GetMask ("RaycastTarget");
if (Physics.Raycast (RightHandAnchor.transform.position, RightHandAnchor.transform.TransformDirection (Vector3.forward), out hit, Mathf.Infinity, layerMask)) {
GreenPoint_Raycast.GetComponent<Image>().enabled = true;
GreenPoint_Raycast.transform.position = (hit.point); //position is right, scaling is the problem
if (hit.collider) {
Debug.Log ("Hit: " + hit.collider.name);
if (hit.collider.name == "Mesh_1") {
} else
if (hit.collider.name == "Mesh_2") {
} else
if (hit.collider.name == "Mesh_3") {
}
} else {
lineRenderer.GetComponent<LineRenderer> ().SetPosition (1, new Vector3 (0, 0, 5000));
GreenPoint_Raycast.GetComponent<Image>().enabled = false;
}
} else {
GreenPoint_Raycast.GetComponent<Image>().enabled = false;
}
}
}
更新:
命中点的距离可以用光线投射命中点计算为:
Debug.Log("hit at distance from RightHandAnchor to object: "+hit.distance);
有了这个,我想用 Lerp 重新调整 GreenPoint_Raycast 的大小?
【问题讨论】: