【Unity3D插件】动态连线插件CustomWire,使用教程

news2024/11/18 23:44:29

推荐阅读

  • 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和坑,让后来人可以有些参考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/502827.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ADAudit Plus的UEBA功能如何解决企业面临的安全挑战

随着企业信息系统的不断发展和扩大&#xff0c;越来越多的安全威胁开始涌现。从内部员工的误操作到外部黑客的入侵&#xff0c;企业信息系统的安全风险日益增加。为了保护企业的关键数据和业务&#xff0c;企业需要采取一系列的安全措施。而其中一项关键的安全措施是实时监控和…

【BingChat】Microsoft Edge/Bing Chat 注册使用完全指南

欢迎关注【youcans的学习笔记】原创作品&#xff0c;火热更新中 【BingChat】Microsoft Edge/Bing Chat 注册使用完全指南 1. BingChat 简介2. BingChat 用户注册2.1 下载微软浏览器 Edge 预览版2.2 申请微软账户2.3 登录 Bing.com2.4 手机/平板使用 BingChat 3. BingChat 的聊…

P1056 [NOIP2008 普及组] 排座椅

题目描述 上课的时候总会有一些同学和前后左右的人交头接耳&#xff0c;这是令小学班主任十分头疼的一件事情。不过&#xff0c;班主任小雪发现了一些有趣的现象&#xff0c;当同学们的座次确定下来之后&#xff0c;只有有限的 &#xfffd;D 对同学上课时会交头接耳。 同学们…

【OpenSSH】无需公网IP使用SSH远程连接服务器

文章目录 前言视频教程1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 转…

家里小孩要去学网络安全,网络安全行业前景到底怎么样?

最近接待了很多学生家长来咨询网络安全学习的问题。 家长们最主要关注三点&#xff1a;什么是网络安全&#xff1f;网络安全行业前景好吗&#xff1f;工资能拿多少&#xff1f;哪些专业什么学历可以学习网络安全&#xff1f; 那么盾叔就来综合解答一下。 什么是网络安全&…

UG NX二次开发(C#)-建模-判断一条曲线是否封闭的方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、前言2、在UG NX中创建一条不封闭的曲线和一条封闭的曲线3、函数说明4、代码5、测试1、前言 前面有个博客介绍了边UG NX二次开发(C#)-建模-判断一条曲线是不是封闭,但是这个博客是判断边对象是…

Interest-aware Message-Passing GCN for Recommendation(www 21)

论文地址&#xff1a;https://arxiv.org/abs/2102.10044 BACKGROUND GCN信息聚合的模式非常适合推荐&#xff0c;但众所周知在模型设计的时候通常只能堆叠2-3层&#xff0c;再多就会出现过平滑问题&#xff08;结点特征之间没有区分度&#xff09;&#xff0c;LightGCN证明了G…

【是C++,不是C艹】 引用的概念 | 引用的使用 | 引用与指针的区别

&#x1f49e;&#x1f49e;欢迎来到 Claffic 的博客&#x1f49e;&#x1f49e; &#x1f449; 专栏&#xff1a;《是C&#xff0c;不是C艹》&#x1f448; 前言&#xff1a; 前面带大家学习了函数重载等C基础&#xff0c;这期继续C基础的学习&#xff1a;引用。 注&#xff1…

最常用的js混淆加密解

JS混淆加密是一种用于保护JS代码的技术&#xff0c;它能够将代码变得难以理解和修改&#xff0c;从而提高代码的安全性。但是&#xff0c;当我们需要修改和维护这些代码时&#xff0c;我们就会面临困难。因此&#xff0c;在某些情况下&#xff0c;我们需要解这些JS代码。 下面…

新唐NUC980使用记录(5.10.y内核):访问以太网(LAN8720A) 启用SSH

文章目录 目的修改内核和设备树以访问以太网制作根文件系统并启用SSH总结 目的 这篇文章主要测试新唐NUC980&#xff08;5.10.y内核&#xff09;访问以太网&#xff08;PHY为LAN8720A&#xff09;以及启用SSH。 这篇文章中内容均在下面的开发板上进行测试&#xff1a; 《新唐…

【三维几何学习】网格可视化-Cube engraving数据集

网格可视化-Cube engraving数据集 引言一、blender二、meshlab三、3D查看器 引言 三角网格(Triangular Mesh)分类数据集 MeshCNN: A Network with an Edge 可参考以上链接深入了解 or 下载数据集。Cube engraving(论文叫法)数据集&#xff0c;又称为Cubes classification datas…

ClickHouse之Explain查看执行计划

文章目录 前言基本语法EXPLAIN 类型EXPLAIN PLANEXPLAIN ASTEXPLAIN SYNTAXEXPLAIN PIPELINEEXPLAIN ESTIMATE 补充忠告 前言 在 clickhouse 20.6 版本之前要查看 SQL 语句的执行计划需要设置日志级别为 trace 才能 可以看到&#xff0c;并且只能真正执行 sql&#xff0c;在执…

快商通联合创始人李稀敏入选“科技专家库专家名单”

3月10&#xff0c;厦门市科学技术局关于2023年第一批拟入选科技专家库专家名单进行公示。经过层层审核&#xff0c;快商通联合创始人李稀敏入选“科技专家库专家名单”。 据了解&#xff0c;厦门市科学技术局的“科技专家库专家名单”是由市科技局精心挑选的一批优秀专家&…

Unsupervised Domain Adaption (UDA)及domain shift介绍

UDA UDA想解决的问题是目标域上数据标签的缺乏&#xff0c;具体而言&#xff0c;存在着源域和目标域&#xff0c;源域上存在大量的标注样本对 D s { ( X i , y i ) } D_s\{(X_i,y_i)\} Ds​{(Xi​,yi​)}&#xff0c;我们可以在上面以有监督的方式训练各种模型&#xff0c;但此…

常见舆情监测系统的分类和特点

随着网络和社交媒体的发展&#xff0c;舆情监测系统逐渐成为企业和政府机构必备的工具之一。舆情监测系统可以帮助企业和政府机构全面了解公众对其品牌、产品、政策等的反应和态度&#xff0c;及时发现和解决问题&#xff0c;提高公信力和形象。本文将介绍常见的舆情监测系统的…

Python Tox

tox其核心作用是支持创建隔离的 Python 环境&#xff0c;在里面可以安装不同版本的 Python 解释器与各种依赖库&#xff0c;以此方便开发者做自动化测试、打包、持续集成等事情。 简单来说&#xff0c;tox 是一个管理测试虚拟环境的命令行工具。 我介绍一种应用场景&#xff…

如何在Jetpack Compose中设置渐变背景

如何在Jetpack Compose中设置渐变背景 只需几步即可通过平滑渐变增强应用程序的用户界面 虽然它经常出现在网络前端的世界中&#xff0c;但渐变背景可以为您的移动应用程序增添专业和美观的触感&#xff0c;使其对您的用户更具吸引力。 第 1 步&#xff1a;创建渐变画笔 为…

Semantic Segmentation using Adversarial Networks

首次将GAN用于语义分割&#xff0c;用于辨别分割图是来自GT还是来自分割网络。作者的想法来自借助GAN可以检测和矫正GT和模型分割图的高阶不一致。最后在Standford和PASCAL VOC 数据集上验证了想法。 对抗学习&#xff1a; 使用两个权重和的混合损失函数进行优化&#xff0c;第…

从win7升级到win10过程中遇到的问题:安装工具无法运行、卸载VMware

目录 1. 概述2. 微软官方安装工具无法运行3. 控制面板的卸载程序里面找不到VMware4. 输入产品密钥5. 安装完后仍然未激活6. 雨林木风 1. 概述 因为新电脑还没有到&#xff0c;把上学时候的笔记本翻出来顶一顶。旧笔记本还是win7&#xff0c;我的鼠标没办法使用&#xff0c;干脆…

HDCTF web复现

[HDCTF 2023]SearchMaster 传data 使用{if}标签闭合达到命令执行的效果 {if phpinfo()}{/if} NSSCTF{f578f8ba-246e-452b-b070-22bc4fc4313d} Smarty模板注入&CVE-2017-1000480 - 先知社区 (aliyun.com) [HDCTF 2023]YamiYami 非预期解 第一个连接 跳转到百度&#xf…