轨迹路线生成与运动插件 Curvy Spline 的使用

一、前言

关于路线插件,Unity商店有一个简单好用且免费插件——Bézier Path Creator (https://assetstore.unity.com/packages/tools/utilities/b-zier-path-creator-136082)。可以支持路径运行和路线物体排序。使用比较简单这里就不过多介绍,这里主要讲的是另一款更强大的路线插件——Curvy Spline (https://assetstore.unity.com/packages/tools/utilities/curvy-splines-7038)。当然这是一款收费插件,我改用Curvy Spline 的重要原因是它拥有Bézier Path Creator没有的两个重要功能(其实多出的远不止两个功能)。一个是它支持动态生成mesh;二是分叉路线切换运行。但Curvy Spline一个很大缺点就是学习上手成本比较大。这次讲讲他的主要使用。

二、Curvy Spline使用

(一) 路线编辑

导入插件后再Scene窗口会多出及个工具菜单
在这里插入图片描述
其中Create里的Shape是几个插件内置的路线图形,
在这里插入图片描述
而旁边的Generator则是一个蓝图编辑工具编辑工具
在这里插入图片描述
DrawSpline就是我们路线点绘制工具
在这里插入图片描述
如图可以选择不同平面进行绘制,按住Ctrl键然后在Scene中即可用鼠标点击绘制
在这里插入图片描述
同时会在Hierachy窗口生成相应的元素对象
在这里插入图片描述
插值模式中我们最常用的应该是贝塞尔曲线,选择的贝塞尔曲线就可以很灵活的在每个贵点点进行曲度编辑
在这里插入图片描述

(二)动态Mesh生成

首先要创建打开编辑蓝图
在这里插入图片描述
右键点击添加Shap Extrusion
在这里插入图片描述
构成动态mesh的4个基本块如下:
在这里插入图片描述
形成的mesh效果如下
在这里插入图片描述
一个mesh中也可以使用多个材质球,首先要在蓝图的ShapeExtrusion勾选材质和展UV,还要在Volume里再添加一个材质球,然后材质球就有默认的编号Mat0,Mat1。
在这里插入图片描述
最后在对应的形状节点选择需要使用的材质ID,以及使用位置,相当于分UV.
在这里插入图片描述
我这里使用了一个金属材质和全透明材质
在这里插入图片描述

(三) 排序模型

添加排序模型需要增加如下3个蓝图组件
在这里插入图片描述
效果如下
在这里插入图片描述
再增加一个物体排序
在这里插入图片描述

(四)路线运动

需要让物体沿轨迹运动,挂上SplineController脚本即可
在这里插入图片描述
实现路径岔道运行,则需要先把两条路径的点连接起来,选中两点,然后点击菜单工具的Connect即可
在这里插入图片描述
在这里插入图片描述
然后再在运动物测上挂一个代码

public class SplineTest : MonoBehaviour
{
    
    
    public SplineController splineController;
    void Start()
    {
    
    
        //运行到每个节点触发
        splineController.OnControlPointReached.AddListenerOnce(OnCPReached);
    }

    private void OnCPReached(CurvySplineMoveEventArgs arg0)
    {
    
    
        //切换一条路径
        splineController.ConnectionBehavior = SplineControllerConnectionBehavior.RandomSpline;
        Debug.Log(arg0.ControlPoint);
    }
}

这样就能在运动到交叉节点切换路线了。

猜你喜欢

转载自blog.csdn.net/YasinXin/article/details/122585816