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

这篇具有很好参考价值的文章主要介绍了【Unity3D插件】动态连线插件CustomWire,使用教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

推荐阅读

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

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

一、前言

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

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

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

效果图:

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

二、插件使用教程

2-1、下载地址

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

2-2、快速启动

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

【Unity3D插件】动态连线插件CustomWire,使用教程
运行程序,效果图如下:
【Unity3D插件】动态连线插件CustomWire,使用教程

2-3、面板介绍

在Hierarchy视图中选中CustomWire对象,这个对象是主要渲染线段的脚本,如下图所示:
【Unity3D插件】动态连线插件CustomWire,使用教程

Custom Wire 面板

在Inspector面板查看CustomWIre.cs脚本组件的属性:
【Unity3D插件】动态连线插件CustomWire,使用教程

属性 介绍
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 面板

添加的节点对象:
【Unity3D插件】动态连线插件CustomWire,使用教程

属性 介绍
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)新建一个场景:
【Unity3D插件】动态连线插件CustomWire,使用教程
(2)在Hierarchy视图,选择右键CustomWire -> Create A New Wire
【Unity3D插件】动态连线插件CustomWire,使用教程
(3)选中CustomWire在Inspector视图点击Create Node三次,添加三个新节点:
【Unity3D插件】动态连线插件CustomWire,使用教程

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

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)添加新节点
    }
}

运行程序:
【Unity3D插件】动态连线插件CustomWire,使用教程

三、后记

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


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

博主主页有联系方式。

博主还有跟多宝藏文章等待你的发掘哦:文章来源地址https://www.toymoban.com/news/detail-478543.html

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

到了这里,关于【Unity3D插件】动态连线插件CustomWire,使用教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何在 Unity3D 制作一杯水 LiquidVolume插件 水杯 烧瓶液体

    这款插件功能非常强大,你可以做烧杯装液体,啤酒,鱼缸,甚至是制作一个池塘. Shader的类型与功能都很齐全,基本上可以满足你想要大部分的效果. 这款插件我做了中文翻译,对于英文不是很好的童鞋会有帮助,至少一目了然,大概知道这个参数是做什么的. 参数截图 效果 与原版插件

    2024年02月02日
    浏览(49)
  • Unity3D中用Vectrosity插件画直线、画点、画曲线、画方框

    Unity3D 中用Vectrosity插件画直线、画点、画曲线、画方框 。Vectrosity插件是 Unity3D 目前发现的一个画线最好的工具插件。   画线我们肯定需要LinePoints,注意:Vector2是Screen以像素为单位的点,如果用Vector3的话那么就是world Space里面的点画线。 画直线用Vector.DrawLine,如果给了材质

    2023年04月24日
    浏览(42)
  • 【Unity3D日常开发】Unity3D中协程的使用

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 最近有小伙伴问协程怎么用、怎么写,我也是会用会写,但是原理不是很明白。 学习了一下,总结出

    2024年02月12日
    浏览(59)
  • [unity3d][通过代码]让模型移动,动态改变模型位置,点对点移动

    阅读时长 : 10分钟 阅读难度 : 初级 阅读收获 : 可以在unity自由的完成点对点的移动过程 例子地址 : https://gitee.com/asiworld/unity3d-basic-function-code 直接修改 gameobject 的 position 内容,当然物体实际存在的有localposition和worldposition,具体要使用哪个要看需求是怎么样的 在hierarchy视图中创

    2023年04月24日
    浏览(58)
  • 「Unity3D」解决2022的PackageManager无法显示官方插件Burst和Collections的最新版本

    非常奇怪Unity2022版本的 PackageManager 无法显示 Burst 和 Collections 的最新版本,但是官方文档已经 release 了更高的适配版本,如下图: 实际上,在2020或2021版本中,可以看到两者的最新版本是 1.8.2 和 1.4.0 ,并且可以正确安装。 那么解决的办法就是,手动添加 packages.unity.com 到

    2024年02月07日
    浏览(73)
  • unity3d:asset store上C#代码热重载插件,不需要重运行,重新加载更新后函数

    https://assetstore.unity.com/packages/tools/utilities/hot-reload-edit-code-without-compiling-250972?clickref=1011lwHg8abvutm_source=partnerizeutm_medium=affiliateutm_campaign=unity_affiliate#description ●方法1:通过导航到Unity菜单栏中的“窗口”打开热重装窗口,然后选择“热重装”。 ●方法2:使用快捷键组合“Alt+Shift

    2024年02月02日
    浏览(52)
  • 使用Unity生成UI预制体 (Unity3D)

    在Unity中,预制体(Prefab)是一种非常有用的工具,用于生成可重复使用的UI元素。预制体使得UI的创建和管理变得更加简单和高效。在本文中,我们将详细介绍如何使用Unity生成UI预制体,并提供相应的源代码示例。 步骤1:创建UI元素 首先,我们需要创建UI元素,例如按钮、

    2024年02月05日
    浏览(63)
  • 使用Unity连接MySQL数据库(Unity3D)

    在Unity开发中,连接数据库是非常常见且重要的任务之一。本文将介绍如何在Unity中连接MySQL数据库,并提供相应的源代码示例。 步骤1:准备工作 在开始之前,确保你已经安装了Unity编辑器,并且有一个MySQL数据库可供连接。你可以使用XAMPP等工具来搭建本地的MySQL服务器,或

    2024年02月04日
    浏览(41)
  • 【unity3D】Dropdown组件 — 如何使用下拉菜单

    💗 未来的游戏开发程序媛,现在的努力学习菜鸡 💦本专栏是我关于游戏开发的学习笔记 🈶本篇是unity的Dropdown组件 介绍:Unity的Dropdown组件是一种UI控件,用于在下拉列表中显示选项或选项组。它允许用户从列表中选择一个选项,并可以在选择时触发特定的行为或事件。通

    2024年02月06日
    浏览(67)
  • 使用Unity3D制作2D游戏的重点做法

    官网上有提供一个 2D游戏的教学范例 ,这个游戏只不过把镜头摆放在横向位置跟随角色移动,游戏内物件运动时固定一个轴不动,使他像横轴式的2D游戏来玩,本质上其实还是个3D游戏,所以如果没有3D建模的话不就没办法做2D游戏了?其实这些并没有定论,就看制作者如何运

    2024年02月11日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包