簡體   English   中英

在 unity 3d 中夾住物體的 X 位置

[英]Clamp X position of object in unity 3d

這是我在 unity 3d 中的代碼

moveDirection = Vector3.forward + new Vector3(Input.acceleration.x * 0.3f, 0, 0);   

// transform.position.x = Mathf.Clamp(transform.position.x, -2.0f, 2.0f);

transform.Translate(moveDirection * Time.deltaTime *9); 

向前移動的物體。 我想夾住它的 x 位置。

transform.position.x = Mathf.Clamp(transform.position.x, -2.0f, 2.0f);

這給了我

錯誤 CS1612:無法修改“UnityEngine.Transform.position”的值類型返回值。 考慮將值存儲在臨時變量中

我怎樣才能夾住我的物體?

Unity 在這方面非常愚蠢,因此需要一些解決方法。 試試這個:

Vector3 tmpPos = transform.position;
tmpPos.x = Mathf.Clamp(tmpPos.x, -2.0f, 2.0f);
transform.position = tmpPos;

您無法直接訪問 x 值,這是一種解決方法:

transform.position = new Vector3(Mathf.Clamp(transform.position.x, -2.0f, 2.0f), transform.position.y, transform.position.z)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM