我試圖在統一編輯器中限制用戶,如果用戶拉伸我給定的 prefeb,物件將根據檢查器中選擇的縱橫比放大和縮小。就像用戶選擇 4:3 并縮放該物件一樣,它會根據縱橫比進行更改。請幫助我。
uj5u.com熱心網友回復:
從刻度手柄的中心開始,所有 3 軸上的刻度立即更改:

因此,如果您設定 escale 例如 (4,3,0) 并從其中心處理 scel 手柄,則比例將被保留。例如,您可以在四邊形中檢查它如何從 4,3,0 變為 8,6,0 等等,增加或減少。
如果您使用代碼執行此操作,您可以安排每當更改感興趣軸的比例時,計算并設定另一個軸的比例,以便保持 4:3 的關系。
uj5u.com熱心網友回復:
[ExecuteInEditMode]
public class AspectScale : MonoBehaviour
{
private Vector3 _baseScale;
private Vector3 _current;
private Transform _transform;
private void OnEnable ()
{
_transform = transform;
_baseScale = _transform.localScale;
_current = _baseScale;
}
private void Update ()
{
if (_transform.hasChanged)
{
if (_current.x != _transform.localScale.x)
SetScale(_transform.localScale.x/_baseScale.x);
else if (_current.y != _transform.localScale.y)
SetScale(_transform.localScale.y/_baseScale.y);
else if (_current.z != _transform.localScale.z)
SetScale(_transform.localScale.z/_baseScale.z);
}
}
private void SetScale (float value)
{
_transform.localScale = _baseScale*value;
_current = _transform.localScale;
}
}
禁用更改方面。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/344691.html
標籤:统一3d
