[英]Always move on surface of the mesh unity C#
我有一个立方体,我想始终在网格表面上移动它。 就像我在表面上有一个目的地,玩家想要 go 但它应该 go 到目的地而不离开网格。 喜欢它 go 沿着网格的表面。 我知道我可以像这样向目的地移动:
IEnumerator MoveToDirection(Vector3 startPosition, Quaternion orientation, Transform planet)
{
GameObject go = GameObject.CreatePrimitive(PrimitiveType.Cube);
go.transform.rotation = orientation;
go.transform.position = startPosition;
while (true)
{
go.transform.position= go.transform.position + go.transform.up * Time.deltaTime* speed;
yield return new WaitForEndOfFrame();
}
}
但不知道如何限制它不应该离开网格表面。
有3种方法可以达到这个效果:
MeshCollider
添加到网格和每帧网格/立方体的RayCast接触点 + 正确的立方体position
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.