下面的脚本应该扩大在世界空间UI Canvas
菜单,使用户得到远,菜单生长在大小和规模,以及当用户接近它,它按比例缩小。调整画布菜单的尺寸和比例在HoloWorld
实际上,我们试图更新菜单将相机的视锥高度的高度,从而使菜单总是占据了完全摄影机视图的垂直高度。
这是朝着解决的办法吗?我们做错了新尺寸与凸轮的平截头体高度不匹配的是什么?我们已将这个脚本放在HoloLensCamera
的应用场景中...
public class Adjuster : MonoBehaviour
{
public RectTransform _rectTransform;
private float _ratio;
private float _pixPerUnit = 100f;
private Vector3 _gazeOrigin;
private Vector3 _uiOrigin;
private float _frustumHeight;
private float _distance;
public bool _reSizeCanvas;
private Camera _camera;
private float _canvasWidth;
private float _canvasHeight;
private void Start()
{
if (_reSizeCanvas)
{
Vector2 initialSize = _rectTransform.sizeDelta;
_ratio = _rectTransform.rect.width/_rectTransform.rect.height;
}
}
private void LateUpdate()
{
_gazeOrigin = transform.position;
_uiOrigin = _rectTransform.position;
_distance = Vector3.Distance(_gazeOrigin, _uiOrigin);
_frustumHeight = 2.0f * _distance * Mathf.Tan(this.GetComponent<Camera>().fieldOfView * 0.5f * Mathf.Deg2Rad);
_rectTransform.sizeDelta = new Vector2(_ratio * _frustumHeight * _pixPerUnit, _frustumHeight * _pixPerUnit);
}
}
如果妳不保持原有的距离u开始在和画布如何ü做一个比原来的规模和应用它,然后呢? –
@JeroenDeClercq我使用holocam和菜单画布之间的'_distance'来计算平截头体的高度,所以随着距离的变化,平截头体的高度发生变化,所以画布应该适应这一点。我不希望两者之间的距离保持不变。我的意思是我不希望菜单在用户之后行走。如果用户离开,我只希望它的大小增加。你是这个意思吗? – Joshua
我在问什么是因为你比例缩放比你需要基线来比较它。因为你是距离的缩放u需要基线距离来比较它。你在做那个吗? –