ue3dUnity游戏中使用单位比例捕捉网格对象位置

Unity游戏中使用单位比例捕捉网格对象位置

分类:
ue3d - Unity游戏中使用单位比例捕捉网格对象位置

在 Unity 中有多种基本方法将游戏对象的位置捕捉​​到网格,其实使用哪种方法取决于自己想要的网格大小。那么这里将讨论使用单位比例捕捉到网格位置,当然使用这种方式也是较为简单的。

现有的 Unity 是以 1 个单位作为标准比例,通常表示游戏中的 1 米。那么一般情况下,它涉及到由 3 个浮点值组成的对象的位置舍入为整数。例如如下代码:

public Vector3 targetPos;
transform.position = new Vector3(
    Mathf.Round(targetPos.x), 
    Mathf.Round(targetPos.y), 
    Mathf.Round(targetPos.z)
    );

通过将对象的位置设置为一个新的 Vector(向量)3 来工作,该 Vector 3 采用目标位置的 X、Y 和 Z 浮点值,因为这是对象所在的位置,并使用 Round 函数将每个值四舍五入为最接近的整数。结果是对象以整数增量移动,将其捕捉到网格。

当然也可以使用相同的方法将一些值捕捉到网格,但不是全部。例如,可以对 X 和 Z 值进行四舍五入,这会将对象的移动锁定为前向和水平轴上的单位,而单独保留 Y 值(对象的高度)。

public Vector3 targetPos;
void Update()
{
    transform.position = new Vector3(
        Mathf.Round(targetPos.x), 
        transform.position.y, 
        Mathf.Round(targetPos.z));
}

以上的方法是一种使用 Unity 现有的单位网格捕捉对象位置较为简单的方法,如果你不想使用这种,也可以使用自定义比例捕捉到位置,最终取决于自己想要的网格大小

相关信息

  • 类型:知识
  • 字数:365
  • 字符:1187
  • 平台:Unity
  • 说明:无
  • 编号:71960

热门内容

提示:3D天堂作为服务提供者,尊重网络版权及知识产权,对某些行为的发生不具备充分的监控能力,若无意间侵犯到您的权利,请 联系我们,我们会在收到信息后尽快给予处理。

本站文章版权归本站自创作者所有,未经允许不得转载!