我正在使用 Unity3D 和 MRTK 進行 Hololens 2 開發。
正如你在圖片中看到的那樣,我得到了一個Square-Gameobject 和一個AppBar-Gameobject。Squarehast MRTK附在BoundsControl它上面,使它可以變形。Square用戶可以使用手柄更改大小和旋轉。
場景看起來像這樣:截圖場景
在每次更改時,用戶都AppBar應該堅持Square使用螢屏截圖所示的左邊框。
預制件的層次結構是: 截圖層次結構
Object-Gameobject 的比例為:X:1,Y:1,Z:1。- Gameobject 的比例為:X:0.15,y:0.15,Z:0.009
。Square
當我Square用手柄縮放時,只有變化的比例,而Object變化的比例Square始終保持不變。
我已經嘗試過這段代碼,但它不能正常作業:
using UnityEngine;
public class AppBar : MonoBehaviour
{
public GameObject appBar;
public GameObject MaterialObject;
public void MoveAppBar()
{
var distance = MaterialObject.transform.localScale.x MaterialObject.transform.GetChild(0).localScale.x - 1;
appBar.transform.position = new Vector3(-distance - 0.032f, 0, 0);
}
}
uj5u.com熱心網友回復:
將一個空物件添加到放大/縮小物件的邊緣。它需要位于邊緣,以便當主物件被修改時,它將保持在邊界上。
將此代碼添加到 UI 上的腳本中:
public Transform tr;
public float offset;
private void Update()
{
Vector3 pos = tr.position;
pos.x = offset;
transform.position = pos;
}
將空物件拖到 tr 槽并為 offset 指定一個值,以指示您希望 UI 與該空物件保持多遠。
現在您應該能夠縮放主物件,并且 UI 將與邊緣保持相同的距離,而不會進一步進入主物件或進入主物件內部。
更好的方法是通過事件/監聽器監聽主物件修改,這樣即使什么也沒發生,你也不會運行更新。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/432327.html
下一篇:沒有Riggibody的運動
