【问题标题】:Clamp X position of object in unity 3d在统一的 3d 中夹住对象的 X 位置
【发布时间】:2013-04-16 07:23:59
【问题描述】:

这是我在统一 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”的值类型返回值。考虑将值存储在临时变量中

我怎样才能夹住我的对象?

【问题讨论】:

    标签: unity3d monodevelop ngui


    【解决方案1】:

    Unity 在这方面非常愚蠢,因此需要一些解决方法。试试这个:

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

    【讨论】:

    • 获取错误 CS0029:无法隐式转换类型 float' to UnityEngine.Vector3
    • @Sona oups,忘记了 .x 我用修复编辑了我的答案,所以现在应该没问题
    【解决方案2】:

    您无法直接访问 x 值,这是一种解决方法:

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

    【讨论】:

      猜你喜欢
      • 2018-07-14
      • 1970-01-01
      • 2021-10-06
      • 1970-01-01
      • 2020-07-02
      • 1970-01-01
      • 2013-01-31
      • 2011-02-12
      • 2019-01-14
      相关资源
      最近更新 更多