【发布时间】:2016-02-22 02:39:12
【问题描述】:
我觉得我在解决这个问题时遇到了一个心理障碍,所以我想我应该检查一下关于我的代码的建议。
我正在尝试生成一个形状相当简单/一致的道路网格。问题是,在使用 Transform.forward 和 Transform.right 命令从中心调整点时,它不会正确旋转。
这是我计算顶点的简化版本(已删除斜率和倾斜):
CreateRoadPiece ( Transform _transform, Vector3 center )
{
Vector3 p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11;
p0 = center + _transform.forward - ( _transform.right * 5.0f );
p1 = center + _transform.forward + ( _transform.right * 5.0f );
p2 = center + ( _transform.right * 5.0f );
p3 = center - ( _transform.right * 5.0f );
p4 = center - _transform.forward - ( _transform.right * 5.0f );
p5 = center - _transform.forward + ( _transform.right * 5.0f );
p6 = p0;
p7 = p1;
p8 = p2;
p9 = p3;
p10 = p4;
p11 = p5;
p0.y -= 0.1f;
p1.y -= 0.1f;
p2.y -= 0.1f;
p3.y -= 0.1f;
p4.y -= 0.1f;
p5.y -= 0.1f;
p6.y += 0.1f;
p7.y += 0.1f;
p8.y += 0.1f;
p9.y += 0.1f;
p10.y += 0.1f;
p11.y += 0.1f;
}
_transform 是具有网格组件的对象,它被旋转并定位为面向道路带应铺设的方向。
路段宽 10 个单位,高 0.2 个单位,深 2 个单位。
我曾假设使用 transform.forward 和 transform.right 可以解决旋转问题,但也许我遗漏了什么?
面对 Z+ 时一切正常。
感谢您的任何意见。
【问题讨论】:
-
为什么会有人投票结束这个?这是一周内唯一一个很好的 Unity3D 问题