Unity曲线插件Dreamteck Splines生成曲线Mesh

一、需求

脱离编辑器,运行时添加点,动态生成管道、线缆等曲线Mesh。

二、Dreamteck Splines简单运用

这方面资料不多,只有官方文档全英参考,而且又介绍得不详细。

2个重要组件介绍:

SplineComputer:

最重要的样条曲线数据组件,Edit中提供了鼠标直接在编辑器场景中添加、删除、移动、旋转、缩放、法向、镜像、基准形状的功能,供在场景中编辑使用。

下方close是首尾闭合本曲线。

reverse是顺序反转,也就是第一个点变最后一个点。

右边加号和剪刀分别是Merge和Split,也就是将两个曲线物体混合成一个,或者将一个曲线物体分割成两个。

TubeGenerator:

Common中的Size是管道粗细,Faces中的Double——sided可以创建双面Mesh,Shape中的Sides是管道的原型截面多少条边,根据自己性能设置。

三、上代码,动态添加点,生成曲线mesh

using System;
using System.Collections;
using System.Collections.Generic;
using Dreamteck.Splines;
using UniRx;
using UnityEngine;

public class DynamicSpline : MonoBehaviour
{
    private SplineComputer _splineComputer;
    private TubeGenerator _tubeGenerator;
    private Material _material;
    
    void Start()
    {
        Vector3[] v3 = new Vector3[3] { new Vector3(1.509808f, -2.273857f, 22.09592f), new Vector3(1.509808f, 3.6f, 34.1f),new Vector3(1.509808f,-2.273857f,54.5f) };
        for (int i = 0; i < v3.Length; i++)
        {
            v3[i].x += transform.position.x;
            v3[i].z += transform.position.z;
            v3[i].y += transform.position.y;
        }
        _material = Resources.Load<Material>("Material/TubeMaterial");
        
        
        _splineComputer = gameObject.AddComponent<SplineComputer>();
        for (int i = 0; i < 3; i++)
        {
            SplinePoint point = new SplinePoint(v3[i]);
            _splineComputer.SetPoint(i, point);
        }
        _tubeGenerator = gameObject.AddComponent<TubeGenerator>();
        _tubeGenerator.spline = _splineComputer;
        
        //how to set the material?
    }
}

但是需要自己弥补一下材质问题,手动设置可以,但是插件应该可以有方法能够设置,暂时没发现。

相关推荐

  1. C# chart曲线专题

    2024-05-10 07:02:08       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-10 07:02:08       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-10 07:02:08       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-10 07:02:08       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-10 07:02:08       18 阅读

热门阅读

  1. 设计模式——解释器模式(Interpreter)

    2024-05-10 07:02:08       9 阅读
  2. 养成类游戏原理分析。

    2024-05-10 07:02:08       10 阅读
  3. UINXU

    2024-05-10 07:02:08       6 阅读
  4. 24届电信红队实习生面经

    2024-05-10 07:02:08       7 阅读
  5. 阿里云宣布:全面赶超GPT-4

    2024-05-10 07:02:08       9 阅读
  6. Oracle redo 日志损坏的几种情况下的恢复方式

    2024-05-10 07:02:08       9 阅读
  7. 华大基因CEPO-尹烨说学习与生活

    2024-05-10 07:02:08       9 阅读