
Unity3D之实用功能及技巧
文章平均质量分 81
本专栏是使用Unity3D制作一些小功能及小技巧,比如说判断Animation是否播放完动画、自动创建文件夹、制作小时钟功能等。后续还会更新更多优质内容。原价99.9,限时前500名半价订阅仅29.9🔥火爆订阅中!
恬静的小魔龙
优快云博客专家、Unity3D领域优质创作者,专注于VR、虚拟仿真开发。
《Unity 3D从入门到实战》作者。
展开
-
【Unity3D小技巧】Unity3D中使用EventTrigger对3D物体的响应
是Unity中用于处理UI事件的一个组件。它允许我们为UI元素(如按钮、图像等)添加事件监听器,从而响应各种交互事件,如鼠标点击、悬停、拖拽等。使用可以避免手动编写复杂的事件处理代码,使UI事件的响应更加简洁和易于管理。比手写UI的Event快很多,方便很多。这篇文章不探究组件与UI事件的交互,主要对焦与与3D物体的响应。原创 2024-09-18 12:25:09 · 1473 阅读 · 0 评论 -
【Unity3D小技巧】Unity3D中实现FPS数值显示功能实现
很简单也很使用的小技巧,就是在Unity3D中实现FPS数值。实现的思路就是,在Update里面,使用+=Time.deltaTime,得到一帧的秒数。然后,每过一秒,去除以固定帧率30帧,得到这一秒的FPS值。原创 2024-08-23 18:12:53 · 1236 阅读 · 0 评论 -
【Unity3D小技巧】Unity3D中实现对InputField的自定义输入限制实例
InputField是UGUI的文本输入框,自带的有输入类型控制。类型功能Standard标准,可以输入任意字符自动更正,可以自动更正用户输入,并建议输入内容整数,只允许输入整数小数,允许输入数字和小数点后一位字母数字,允许字母和数字。无法输入符号Name名称(支持中文)自动将每个单词的首字母大写。电子邮件地址,允许您输入最多包含一个@符号的字母数字字符串Password密码:用 * 表示输入的字符,从而隐藏输入内容。允许输入任意字符Pin。原创 2024-08-23 18:01:53 · 1515 阅读 · 0 评论 -
【Unity3D小功能】Unity3D中显示项目打包后的版本号
这篇文章写一下如何在项目打包后显示版本号。因为打包的版本太多,都不太清楚这一版是那一版,所以就写个小功能去查看。2、不销毁然后使用个Text去显示就行。原创 2024-08-23 17:13:57 · 1008 阅读 · 0 评论 -
【Unity3D小技巧】解析Txt文档,赋值给Text案例
推荐阅读优快云主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群:1040082875一、前言有小伙伴跟我说,公司现在需要解析JSON,但是百度的解析JSON的又各种各样,我都看懵了,有没有好一点的解析方案,然后我就将我这篇文章推送给了他【Unity3D日常】Unity写Json数据,以及在Unity读取、解析Json数据。过了一晚上,又跟我说,不行啊,虽然只要解析JSON了,但是步骤还是不太理解,怎么保存值呀,怎么赋值呀,都不会。我说,那你把文档发给我,.原创 2021-06-08 15:28:50 · 5087 阅读 · 7 评论 -
【Unity3D小技巧】Unity3D中扩展方法的使用
一、前言在程序开发中,可能会遇到现有类型的方法中没有我们想要的方法,这时候就可以使用扩展方法给已有类型添加新的方法,而无需创建新的派生类、重新编译或者其他方式修改原始类型的代码。扩展方法需要定义成静态方法,通过实例方法语法进行调用,参数类型就是制定方法作用于哪个类型,该参数使用this修饰符为前缀二、为System.String类添加扩展方法下面的示例演示为 System.String 类定义的一个扩展方法。 请注意,它是在非嵌套的、非泛型静态类内部定义的:public static class原创 2020-10-24 19:00:37 · 1920 阅读 · 0 评论 -
【Unity3D日常开发】Unity3D中使用数据类保存数据,持久保存数据、数据存放在、跨场景调用数据类
推荐阅读优快云主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群:1040082875大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。一、前言我发现还有很多小伙伴对于数据的保存很疑惑,不知道怎么保存数据,也不知道跨场景的数据怎么保存。Unity的数据的持久化主要有以下几种方式:使用PlayerPrefs类,进行数据持久化使用数据类保存数据使用本地文件保存数据,比如Json、XML、TXT使用服务器获取.原创 2022-05-13 09:00:45 · 7370 阅读 · 1 评论 -
【Unity3D小技巧】Unity中获取到游戏时间,并显示出来
一、前言本篇内容是如何获取到运行时间,然后实时显示出来二、原文原文链接:https://jingyan.baidu.com/article/fdbd4277aba1eab89f3f4850.html原文作者:qxkzuiai512原文出处:百度经验三、正文效果如下新建脚本GetTime.cs编辑脚本using UnityEngine;using System.Collect...原创 2019-03-20 14:26:24 · 8795 阅读 · 0 评论 -
【Unity3D小技巧】Unity3D中实现箭头指向效果实现
一、前言本文主要实现一个箭头指向的作用,现在看一下效果二、需要用到的资源都是png文件,上传到百度云盘了链接:https://pan.baidu.com/s/1opQYzSNrXKboM3eFWEb-qQ提取码:avvu三、正文1.新建一个Plane2.创建材质arrow从下载的图片包中随便找一张图片拖进去,然后Shader改为Unlit/Transparent3.将材...原创 2019-02-27 11:34:40 · 15043 阅读 · 21 评论 -
【Unity3D小功能】Unity3D中实现热力图、风向图、温度图效果
一、前言因一个任务要完成如何在Unity上面实现热力图的效果,所以百度了很久,发现资料很少,现在就把我总结的如何在Unity上面基于Canvas实现热力图效果的实现过程分享出来, 此前转载了一篇主要讲的是如何根据数据值,在Canvas上重新绘制RGBA的值,完成热力图的绘制,不过用的是H5写的,我修改了一下,用C#重写的二、参考资料1.基于Canvas的热力图绘制方法【http://www....原创 2019-01-03 10:06:59 · 12112 阅读 · 16 评论 -
【Unity3D小功能】Unity3D中实现场景的淡入淡出效果
Unity3d 场景的淡入淡出效果实现思路用UGUI设计一张全屏的纯色图片控制图片的Alpha值,来实现淡入淡出的效果实现先新建一张图片,设置锚点为全屏 设置颜色值 新建脚本Fade_Controlusing UnityEngine;using UnityEngine.UI;//状态效果值public enum FadeStatuss{...原创 2018-06-08 11:20:13 · 6322 阅读 · 5 评论 -
【Unity3D小功能】Unity3D中实现手指任意拖动物体
手指拖动物体,也是交互中比较常见的一种操作,那么就让我们来看看怎么实现吧首先看看实现效果吧接下来说一下实现步骤 1. 新建一个Cube,设置好物体的坐标大小 2. 新建脚本Drag.cs,叫脚本Drag.cs挂在Cube上 3. 编写脚本Drag.csusing System.Collections;using System.Collections.Generic...原创 2018-06-12 14:57:13 · 8233 阅读 · 4 评论 -
【Unity3D小功能】Unity3D中实现画板效果
using System.Collections;using System.Collections.Generic;using UnityEngine;public class player : MonoBehaviour{ public GameObject PrintPrefab; // Use this for initialization void Start(原创 2018-01-03 15:02:25 · 6592 阅读 · 1 评论 -
【Unity3D小技巧】Unity3D中实现让物体跟随鼠标移动
在Update中运行Vector3 mousePos=Camera.main.ScreenToWorldPoint(Input.mousePosition)+new Vector3(0,0,10);这行代码的意思是屏幕坐标转化为三维坐标,然后z轴加10就是正确的位置了transform.position=mousePos;当前坐标跟随鼠标移动原创 2018-01-03 14:53:04 · 15263 阅读 · 6 评论 -
【Unity3D小功能】Unity3D中实现自动寻路并且动态显示路线(Navgation)
在Unity3d中实现点击目标点,然后出现引路线段,动态更新线段等功能 主要用到组件:NavMeshAgent参数就不全部说明了,就说几个重要的吧 Steering->Speed <1>这个是设置自动寻路的速度的,可以把这个值设置成0,然后就会光显示路线,而不自动寻路了。 <2>也可以随便设置一个值,然后就会显示路线,而且还会自动寻路Steering->Stopping Distance原创 2017-11-28 09:28:15 · 10616 阅读 · 9 评论 -
【Unity3D小功能】Unity3D中实现鼠标拖拽物体实现任意角度自旋转
Unity3d鼠标拖拽物体实现任意角度自旋转 主要涉及函数Input.GetAxis(“Mousex”) 可取得鼠标横向(x轴)移动增量Input.GetAxis(“Mousey”) 可取得鼠标竖向(y轴)移动增量通过勾股定理获取拖拽长度,长度越长旋转越快在project setting–Input可以设置直接上代码,看了就原创 2017-10-17 09:08:58 · 10850 阅读 · 2 评论 -
【Unity3D小功能】 实现物体一闪一闪的效果,霓虹灯效果,跑马灯效果,LED灯
using UnityEngine;using System.Collections;using UnityEngine.UI;public class ShowHide : MonoBehaviour{ //创建一个常量,用来接收时间的变化值 private float shake; //通过控制物体的MeshRenderer组件的开关来实现物体闪烁的效果 p原创 2017-11-10 17:39:54 · 26847 阅读 · 18 评论 -
【Unity3D小技巧】Unity3D中实现一款计时器和倒计时工具
一、前言今天分享一下如何基于Unity3D做计时器工具,为了方便演示,使用了UGUI的Text,代码简单具有拓展性,然后有什么错误或者意见也欢迎大家给我提出来。微信二维码已经显示在博客主页,有想要沟通学习的,项目外包的都可以加一下。二、效果图计时器效果倒计时效果三、本文链接本文链接:GitHub项目源码下载:四、代码using UnityEngine;using Unity...原创 2019-12-31 16:13:30 · 4511 阅读 · 6 评论 -
【Unity3D小功能】Unity3D中获取天气信息以及地方位置
一、前言前段时间有小伙伴问到如何用Unity制作天气预报,博主也是在网上找了很多资料,发现天气API接口稳定的确实没有,除非是天气官方提供的, 但是我观察了下,要是合作伙伴才有开放的可能。其他的,例如:百度 APIStore、一些同学在其他网站上抓包下来的接口,以及什么各种收费的 API,都没有稳定的。找了很多接口API,发现了一个比较好用的免费天气API,就分享一下首先看一下效果图:项目源码链接:二、参考资料1、unity 获取地方位置和天气(简单版本)2、免费、稳定的天气预报API3原创 2020-05-09 12:38:50 · 5847 阅读 · 35 评论 -
【Unity3D小功能】Unity中实现鼠标经过物体时变颜色,离开时恢复
点击3D物体时变颜色效果图:代码:using UnityEngine;using System.Collections;public class MouseEvent_Color : MonoBehaviour{ /// 鼠标悬浮 void OnMouseOver() { transform.Rotate(Vector3.up * 25 * Time.deltaTime); } // 鼠标点击 void OnMouseDown(原创 2020-05-12 16:25:50 · 6939 阅读 · 1 评论 -
【Unity3D小功能】Unity中实现“使用次数限制以及时间限制功能”
一、前言在使用Unity进行软件开发的时候,会遇到实现程序的使用次数限制,以及使用的时间区间限制,说白就是保护程序的一种措施。我们用的方法是,新建注册表,增加键值对,修改键值,完成对程序的使用权限控制。当然还有更加安全的方法,包括获取硬盘编号,还有电子狗加密等等,这些就以后讨论。【Unity3D】实现“使用次数限制以及时间限制功能”一、时间限制二、次数限制三、同时控制时间...原创 2019-08-01 17:35:07 · 5100 阅读 · 7 评论 -
【Unity3D小技巧】Unity3D中鼠标射线点击,UI出现在鼠标点击的位置
我们在使用Unity开发当中,可能会遇到这个问题,如何鼠标点击物体,在物体旁边出现UI呢今天我就把我自己的思路分享给大家1.鼠标点击,出现射线,用射线判断点击到的物体2.将UI设置到鼠标点击到的位置坐标OK,先从射线开始 射线的创建和显示Ray射线类和RaycastHit射线投射碰撞信息类是两个最常用的射线工具类。创建一条射线Ray需要指明射线的起点(origin)和射线...原创 2018-05-22 16:43:47 · 13587 阅读 · 16 评论 -
【Unity3D小功能】Unity3D中实现手势控制模型放大缩小
手势控制模型放大缩小是交互中比较常见的功能,今天就来看一下怎么实现吧先看一下效果步骤:先新建一个Cube,调整一下位置和大小新建脚本Gesture.cs,将脚本Gesture挂在Cube上编写脚本Gesture.csusing UnityEngine;using System.Collections;public class Gesture : MonoBe...原创 2018-06-12 11:29:02 · 6968 阅读 · 14 评论 -
【Unity3D小功能】Unity3D项目的加密、激活实现
一、前言今天分享几种比较简单的项目加密、激活的思路,但是不是对项目的源代码加密,只是对不是太懂破解的人有用的几种加密思路,当然,万物能加密就能解密,只是时间问题二、正文思路一:项目中保存账号密码这个可以使用常量用来保存账号密码,或者注册表,或者本地持久化数据,思路就是先将账号密码设置好,然后其他人用这个软件的时候需要账号密码来激活,用以加密过程:1 我们先做一个UI2 代码usi...原创 2019-09-20 15:13:13 · 2635 阅读 · 4 评论 -
【Unity3D小功能】Unity3D中实现计时器工具类-正计时、倒计时、暂停计时、加速计时
推荐阅读优快云主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群:1040082875大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。一、前言最近要实现个小功能:计时器。计时器的用处很多,比如说在游戏开发中显示技能CD、buff持续时间、控制眩晕等状态的持续时间。计时器的主要功能有:在规定时间内倒计时显示倒计时时间显示正计时时间暂停、继续时间速率影响获取倒计时剩余时间倒计时结束的回调话说大.原创 2022-05-17 19:07:20 · 9119 阅读 · 5 评论 -
【Unity3D小技巧】Unity3D中UI控制解决方案
在开发中总是会控制UI界面,如何优雅的控制UI界面是每一个Unity3D程序员的必修课。这篇文章就总结了一下博主在实际开发中用到的几种控制UI的方式,分享出来以供批评指正。控制UI顺序控制UI层级控制初始化的先后顺序显示隐藏的堆栈。原创 2024-02-02 16:18:34 · 3384 阅读 · 0 评论 -
【Unity3D小技巧】从物体当前方发射一条射线,并返回射线检测到的物体信息
推荐阅读优快云主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群:1040082875一、前言射线系统 是Unity3D编辑器中,比较重要的系统,可以用来检测点击到的物体,碰撞到的对象信息等。我再以前的一篇文章中用到了射线:【Unity3D】Unity3D 鼠标射线点击,UI出现在鼠标点击的位置这篇文章用到了射线,是从摄像机的位置向前发射一条射线:今天我们来讲一下,如何从物体上发射一条射线,并且用射线去检测碰撞到的物体。二、效果图先来一个效果图,.原创 2021-07-12 09:42:40 · 8636 阅读 · 7 评论 -
【Unity3D小技巧】在Unity中使用正则表达式
一、前言正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regex原创 2020-08-18 11:49:53 · 7979 阅读 · 1 评论 -
【Unity3D小技巧】Unity3D中复杂Json结构的生成与解析--List<List<int>>--Dic<int,List<List<int>>>
推荐阅读优快云主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群:1040082875大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。一、前言最近有小伙伴在群里询问复杂Json格式应该怎么解析和生成。比如:List<List<int>>Dictionary<int, List<int>>Dictionary<int, Dictionary<st.原创 2022-01-13 16:29:49 · 6743 阅读 · 3 评论 -
【Unity3D小技巧】Unity3D中判断Animation以及Animator动画播放结束,以及动画播放结束之后执行函数
在日常开发中,可能会遇到要判断Animation或者Animator动画播放是否结束的情况。判断Animation// 判断动画播放结束normalizedTime的值为0~1,0为开始,1为结束。Debug . Log("动画播放完毕");} } }if(!Debug . Log("没有播放动画,或播放结束动画");} } }判断Animator。原创 2023-03-09 10:11:53 · 14545 阅读 · 2 评论 -
【Unity3D小技巧】Unity3D中Animation和Animator动画的播放、暂停、倒放控制
在日常开发中,常常会遇到要控制动画的播放、暂停和倒放的情况。这篇文章就总结一下,Animation和Animator动画播放系统的控制播放、暂停、倒放的代码。首先,来了解一下Animation和Animator的区别和联系。原创 2023-03-14 18:41:21 · 20622 阅读 · 0 评论 -
【Unity3D小技巧】Unity3D中打包WEBGL后读取本地文件数据
有粉丝问我,怎么在打包后WEBGL读取本地文件数据呢?//文件流形式读取文档 using(FileStream fs = File . OpenRead(path)) {} } }运行后也没有问题:然后打包WEBGL:报错:无法找到路径,其实不是路径的问题,而是WEBGL不支持IO接下来,就来说一下WEBGL读取本地文件的方法吧。原创 2022-09-30 18:12:28 · 10387 阅读 · 11 评论 -
【Unity3D小技巧】提高开发效率之定时器系统实现
推荐阅读优快云主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群:1040082875一、前言今天,来分享一下如何实现定时器。实现定时器需要搞明白二个问题:一、定时器如何实现二、为什么制作定时器系统首选,我们来了解一下如何在Unity里面实现定时器。二、Unity 定时器的三种实现方法在Unity开发程序的时候,会学习到很多实现定时器效果的方法,比如说:2-1、使用Time.deltaTime累加方式在Update里面,使用Time.delta.原创 2021-08-05 10:51:51 · 6957 阅读 · 11 评论 -
【Unity3D小技巧】Unity3D中使用反射消灭Switch语句
推荐阅读优快云主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群:1040082875大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。你的点赞就是对博主的支持,有问题记得留言:一、前言在开发中常常会用到Switch语句,Switch语句是一种选择语句,指针某个表达式的值进行判断,从而执行哪一段的代码,但是表达式的值多了之后,Switch语句往往特别长,很不美观,接下来,博主就带领大家使用反射来消灭Switch.原创 2022-03-15 16:18:30 · 3813 阅读 · 6 评论 -
【Unity3D小功能】Unity3D中有限状态机的简单实现
推荐阅读优快云主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群:1040082875一、前言Hello,大家好,我是☆恬静的小魔龙☆,正所谓学而不思则罔,思而不学则殆,最近项目开发中,人物的动作特别多,用状态机去切换感觉太麻烦,然后切换的效果也并不理想。比如下面的状态机:每次“走→站立→跑”,都一些卡顿,没有那么丝滑,所以就想学习一下FSM(有限状态机)。二、有限状态机什么是有限状态机:如其名有限状态机,就是可以枚举出有限个状态,然后状态直接可.原创 2021-07-28 16:40:44 · 5107 阅读 · 10 评论 -
【Unity3D小功能】Unity3D中实现向Web服务器上传图片以及下载图片功能
推荐阅读优快云主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群:1040082875大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。一、前言今天分享一下从搭建web服务器,到向服务器发送图片,以及加载图片的整体实现。因为是Demo演示,所以尽可能的简单、详细且实用,有什么错误敬请指正。先看一下效果图:文章参考:Unity向Web服务器上传和下载图片二、搭建PHP服务器搭建PHP服务器还是很简单的,只.原创 2022-01-07 10:20:08 · 8314 阅读 · 14 评论 -
【Unity3D小功能】Unity3D中实现箭头指向目标点的效果
推荐阅读优快云主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群:1040082875大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。一、前言最近开发的时候遇到了箭头指向的需求,本来想用我这篇文章中的代码来着:【Unity3D日常开发】Unity中实现箭头指向效果实现但是想到这个代码是在Update里面运行,对效率影响比较大,正好看到这个同学给我留言:我看了一下他这个是通过Shader和MeshRende.原创 2022-03-29 10:22:22 · 17006 阅读 · 33 评论 -
【Unity3D小功能】Unity3D中UGUI-Text实现打字机效果
需求要实现Text的打字机效果,一看居然还没这类型的教程,遂补上。原创 2024-06-07 16:32:50 · 1353 阅读 · 0 评论 -
【Unity3D小功能】Unity3D中实现点击‘文字’出现‘UI面板’
宠粉博主又来了,今天有粉丝问我如何实现点击一段文字然后出现的面板在那段文字附近显示:深入了解后发现原来就是想要点击文字出现UI面板,并且UI面板在文字附近:这种效果在很多游戏都会出现,比如梦幻西游、DNF,查看武器装备啥的。接下来,这篇文章就来实现一下这种效果。继续修改// 绑定事件i++)case "匕首":WeaponItem.Instance.ShowInfo(0,info,"普通","这是一把绝世匕首。");原创 2024-03-25 18:28:06 · 2505 阅读 · 0 评论 -
【Unity3D小功能】Unity3D中UGUI的Text、Dropdown输入特殊符号
在开发中会遇到需要显示特殊符号的情况,比如上标、下标、平方等。这篇文章就来演示一下如何将特殊符号复制到里面,并且显示出来。那么,有同学就会问,为啥不带InputField。原创 2024-01-25 22:22:48 · 3683 阅读 · 0 评论