【Unity3D插件】动态连线插件CustomWire,使用教程
创始人
2024-12-29 00:06:49
0次

推荐阅读

  • CSDN主页
  • GitHub开源地址
  • Unity3D插件分享
  • 简书地址
  • 我的个人博客

大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

一、前言

CustomWire插件可以在Unity3D中实现动态连线,将三维物体通过线段连接到一起。

可以添加多个节点,以及设置节点的上一个节点和下一个节点完成节点的连线。

还可以通过修改贴图,来修改线段的不同颜色,拓展度高,使用原生Unity组件LineRenderer,流畅度也可以接受。

效果图:

在这里插入图片描述

二、插件使用教程

2-1、下载地址

https://download.csdn.net/download/q764424567/87764781

2-2、快速启动

导入插件后,点开Project视图中的CustomWire/Example/Scene/Example 4 - Drag Wire NodeSettings.unity场景:

在这里插入图片描述
运行程序,效果图如下:
在这里插入图片描述

2-3、面板介绍

在Hierarchy视图中选中CustomWire对象,这个对象是主要渲染线段的脚本,如下图所示:
在这里插入图片描述

Custom Wire 面板

在Inspector面板查看CustomWIre.cs脚本组件的属性:
在这里插入图片描述

属性介绍
Line Renderer目标线段
Wire Type曲线(Curve,至少3个节点及以上时才绘制曲线)、折线(Linear)
Set On Update是否实时更新线段
Close Wire是否闭合,即线段是否收尾相连
Draw Nodes是否显示节点
Node Radius表示节点的小球的半径
Create Node在线段末尾新建一个节点,默认为CustomWire物体的子物体,该节点的坐标为前一个节点的坐标,如果是第一个节点则localPosition=Vector3.zero
Remove All Nodes删除所有节点
Wire Node X节点名称
▲/▼上移/下移节点,即与前/后节点交换位置,节点的顺序会影响线段的计算结果,改变节点顺序将改变线段形状
√选择节点
X删除节点
Custom Wire Node 面板

添加的节点对象:
在这里插入图片描述

属性介绍
Front Node:xxx前置节点名称
Back Node:xxx后置节点名称
<<选择前置节点
>>选择后置节点
Add Node At Front在当前节点的前面添加节点
Add Node At Back在当前节点的后面添加节点
Go To Wire Object选择CustomWire物体
Remove This Node删除当前节点

2-4、使用教程

(1)新建一个场景:
在这里插入图片描述
(2)在Hierarchy视图,选择右键CustomWire -> Create A New Wire:
在这里插入图片描述
(3)选中CustomWire在Inspector视图点击Create Node三次,添加三个新节点:
在这里插入图片描述

(4)新建两个Cube,将两个节点分别放到Cube节点下面,并且把Cube的位置都拉开:
在这里插入图片描述
(5)给Main Camera添加DragNode.cs组件:
在这里插入图片描述
(6)运行程序:
在这里插入图片描述
这一小节是说明如何新建节点,使用节点,下一小节就使用代码去动态添加节点。

2-5、动态添加

新建脚本命名为WireTest.cs,双击打开代码,编辑代码:

using System.Collections; using System.Collections.Generic; using UnityEngine;  public class WireTest : MonoBehaviour {     public CustomWire customWire;      public CustomWireNode[] CustomWireNodeAlls;     public GameObject[] GameObjectAlls;     public Transform[] TransformsAlls;     public Vector3[] Vector3Alls;      void Start()     {         CustomWireNode node = customWire.GetNode(0);         //获取第index个节点          customWire.AddNode();                               //在末尾添加新节点,若没有节点,则新节点为第一个节点         customWire.AddNode(node);                           //在末尾添加指定节点,若节点为空或已存在则不添加         customWire.AddNodeRange(CustomWireNodeAlls);        //添加节点集合         customWire.AddNodeRange(GameObjectAlls);            //添加节点集合(重载,参数:GameObject数组)         customWire.AddNodeRange(TransformsAlls);            //添加节点集合(重载,参数:Transform数组)         customWire.AddNodeRange(Vector3Alls);               //添加节点集合(重载,参数:Vector3数组)          customWire.InsertNode(0);                           //在index位置插入新节点         customWire.InsertNode(0, true);                      //插入新节点,新节点将作为index位置节点的前置(atFront==true)/后置(atFront==false)节点         customWire.InsertNode(0, node);                      //在index位置插入节点node         customWire.InsertNodeRange(0, CustomWireNodeAlls);  //插入节点集合         customWire.InsertNodeRange(0, GameObjectAlls);      //插入节点集合(重载,参数:GameObject数组)         customWire.InsertNodeRange(0, TransformsAlls);      //插入节点集合(重载,参数:Transform数组)         customWire.InsertNodeRange(0, Vector3Alls);         //插入节点集合(重载,参数:Vector3数组)          customWire.RemoveNode(0);                           //删除index位置的节点         customWire.RemoveNode(node);                        //删除指定节点         customWire.RemoveAllNodes();                        //删除所有节点          customWire.UpdateWire();                            //更新线段          node.AddNode(true);                                 //在当前节点的前(atFront==true)/后(atFront==false)添加新节点     } } 

运行程序:
在这里插入图片描述

三、后记

如果觉得本篇文章有用别忘了点个关注,关注不迷路,持续分享更多Unity干货文章。


你的点赞就是对博主的支持,有问题记得留言:

博主主页有联系方式。

博主还有跟多宝藏文章等待你的发掘哦:

专栏方向简介
Unity3D开发小游戏小游戏开发教程分享一些使用Unity3D引擎开发的小游戏,分享一些制作小游戏的教程。
Unity3D从入门到进阶入门从自学Unity中获取灵感,总结从零开始学习Unity的路线,有C#和Unity的知识。
Unity3D之UGUIUGUIUnity的UI系统UGUI全解析,从UGUI的基础控件开始讲起,然后将UGUI的原理,UGUI的使用全面教学。
Unity3D之读取数据文件读取使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。
Unity3D之数据集合数据集合数组集合:数组、List、字典、堆栈、链表等数据集合知识分享。
Unity3D之VR/AR(虚拟仿真)开发虚拟仿真总结博主工作常见的虚拟仿真需求进行案例讲解。
Unity3D之插件插件主要分享在Unity开发中用到的一些插件使用方法,插件介绍等
Unity3D之日常开发日常记录主要是博主日常开发中用到的,用到的方法技巧,开发思路,代码分享等
Unity3D之日常BUG日常记录记录在使用Unity3D编辑器开发项目过程中,遇到的BUG和坑,让后来人可以有些参考。

相关内容

热门资讯

每日必看!江岸多玩到底能开挂吗... 每日必看!江岸多玩到底能开挂吗(辅助挂),江岸多玩原来真的有辅助挂讲义1、江岸多玩脚本辅助下载、江岸...
玩家交流!颖河竞技怎么开挂(外... 玩家交流!颖河竞技怎么开挂(外挂),颖河竞技好像是有外挂教材一、颖河竞技游戏安装教程牌型概率发牌机制...
最新通报!皮皮四川麻将软件下载... 最新通报!皮皮四川麻将软件下载(辅助挂),皮皮四川麻将果然有辅助挂模块1、操作简单,无需皮皮四川麻将...
一分钟揭秘!52游戏开挂脚本(... 一分钟揭秘!52游戏开挂脚本(透视挂),52游戏切实有透视挂法子52游戏脚本下载中分为三种模型:52...
一分钟快速了解!堆堆乐开挂破解... 一分钟快速了解!堆堆乐开挂破解(外挂),堆堆乐竟然真的有外挂方针1、下载好堆堆乐正确养号方法之后点击...
重大通报!汇城贵州麻将开挂脚本... 重大通报!汇城贵州麻将开挂脚本(开挂),汇城贵州麻将原来真的有开挂法门1、重大通报!汇城贵州麻将开挂...
盘点一款!七色城透视挂件(外挂... 盘点一款!七色城透视挂件(外挂),七色城切实是真的有外挂经验1、全新机制【七色城ai辅助工具激活码】...
今日头条!多多休闲透视软件下载... 今日头条!多多休闲透视软件下载(外挂),多多休闲确实是真的有外挂攻略1、首先打开多多休闲辅助器下载最...
关于!钱柜麻将真的有透视吗(辅... 关于!钱柜麻将真的有透视吗(辅助器),钱柜麻将一贯是有辅助器练习钱柜麻将能透视中分为三种模型:钱柜麻...
今日焦点!河北家乡棋牌辅助工具... 今日焦点!河北家乡棋牌辅助工具(外挂),河北家乡棋牌果然是有外挂手册小薇(辅助器软件下载)致您一封信...