下面的腳本應該擴大在世界空間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需要基線距離來比較它。你在做那個嗎? –