
Unity
文章平均质量分 64
九德真君
君子无财便是德
展开
-
Unity获取场景中所有根物体
Unity获取场景中所有根物体原创 2022-10-27 16:15:58 · 3049 阅读 · 1 评论 -
为UGUI的Image提供图片翻转功能
TODO原创 2020-03-13 16:21:40 · 2852 阅读 · 0 评论 -
NGUI ScrollView辅助插件“Super Scroll List for NGUI”
Super Scroll List for NGUI 插件地址:https://www.assetstore.unity3d.com/cn/#!/content/94796 这是个NGUI的辅助插件,可以帮你管理UIScrollView下的重复元素,哪怕拖拽列表成员成千上万,照样流畅到爆。 跟NGUI自带的UIWrapContent相比,它有更原创 2017-12-06 16:27:08 · 849 阅读 · 3 评论 -
模仿NGUI实现SoftClip(二)
书接上文,这篇文章我们要在上文的基础上实现SoftClip效果。上图是最终效果,内层白框里面正常显示,外层白框外完全透明,两层白框间透明过渡。 首先我们要在ClipPanel脚本上添加过softWidth和softHeight这两个参数,用来定位内框,修改后的脚本如下: using UnityEngine;using System.Collections;using ...原创 2017-12-06 15:42:40 · 904 阅读 · 0 评论 -
使用Rider在Unity下写代码
最近有点沉迷JetBrains公司的IDE,于是顺便试了下Rider(C#语言的IDE),发现对Unity的支持很好,完全可以取代臃肿且不能跨平台的VS和弱鸡般的Mono。首先我们需要去官网下载Rider(下载地址:www.jetbrains.com/rider),可惜没有社区版,只能试用30天,建议有钱的同学直接上正版支持一下吧,像咱这样没钱的就多用搜索引擎吧。下载安装略过不提,下面说如何在Un...原创 2018-03-08 13:56:34 · 16084 阅读 · 3 评论 -
使用自定义Editor类在Unity下扩展Inspector窗口(通用)
Unity的Inspector窗口可以实时展示我们的脚本组件上的变量内容,但是内容比较简陋,很多时候为了显示更多内容或更好的排版,必须手写脚本组件的Editor类以实现目的。但是有些基础需求,我希望能默认提供给所有脚本组件使用,而无需为其定制Editor类。后来发现有个插件叫做Odin,它能让任意继承自Monobehaviour的脚本都可以实现其提供的Inspector扩展功能(它把所有脚本都...原创 2018-08-13 20:50:22 · 1911 阅读 · 5 评论 -
Unity在Win10环境下打不开项目的一个解决办法
本人最近几天遇到了一个很奇怪的问题,Unity选择打开项目后,进程就跑到后台去了,什么反应都没有,窗口始终出不来,没有报错没有弹窗。我多次重装不同版本的Unity,还重装了一次系统,结果问题依旧。 最后在网上找了半天,发现元凶竟然是游戏手柄,把手柄拔掉后,窗口立刻弹出来了,真是无语的很。希望遇到同样问题的朋友能在看到这篇文章后,别像我一样傻乎乎的重装了,拔掉你的USB外设,问题说...原创 2018-10-10 17:05:51 · 28273 阅读 · 11 评论 -
NGUI的UIInput限制输入字节数
UIInput有个字段是"Character Limit",它决定了输入字符数目的上限。每个字符不论是中文还是英文,都算1个字符。有个很常见的需求是根据字节数限制输入长度,英文数字算1个字节,中文算2个字节。我们需要修改UIInput以实现该功能,网上有相关的处理代码,可惜随着NGUI更新已经过时,我只好重新写了一个修改实现,并分享出来。因为整个文件过长,本文只提到修改的地方。打开文件 U...原创 2019-03-20 16:57:38 · 1039 阅读 · 0 评论 -
NGUI通用边框流光
UI层的矩形按钮、矩形头像,很多时候都需要有个高亮的边框来点缀。最近本人写了一个扩展版的UI边框,跟使用UITexture一样方便,得到了特效师的高度评价,便拿出来献丑分享。效果如下:小新的头像是一个UITexture,外面的边框是一个叫做UIHollowedTexture的UI组件(拿UITexture魔改而来),可以设置边框贴图,可以UV滚动。本文接下来会介绍UIHollowedTex...原创 2019-03-22 17:26:59 · 1164 阅读 · 1 评论 -
模仿NGUI实现SoftClip(一)
用过NGUI的童鞋都知道UIPanel可以设置一个矩形的Clip区域,它下辖的UIWidget都只能在Clip区域内显示。今天我就模仿UIPanel实现类似的Clip功能,让一个3D面片只能在我所指定的矩形区域内显示。相信看完这篇文章,UIPanel的Clip原理也就不再神秘了。 为了让难度循序渐进,我们先实现HardClip(边缘没有Alpha过渡,直接硬切)。实现原理:用脚本算出显...原创 2017-12-05 15:03:31 · 1340 阅读 · 1 评论 -
Unity5的AssetBundle打包方式简析
在写这篇文章前,我要先吐槽一下老版本的AssetBundle打包,其它方面我都没意见, 在打依赖包的处理上简直反人类,导致很多人宁愿资源冗余也不愿意做依赖包。不过在新版本的打包方式面前,这个问题已经不存在了。下面是我写的打包方法,应该已经很详细了public static class ABBuilder{ [MenuItem("Build/Build AB")] static voi原创 2017-05-17 18:16:43 · 881 阅读 · 0 评论 -
命令行运行Unity脚本
想要运行一个Unity项目里的某个脚本方法,正常的方法是打开Unity编辑器,然后通过各种Unity提供的调用方法调用它(帧事件、UI事件、编辑器菜单事件等),今天要演示的是通过CMD命令或批处理执行它。打开Unity创建一个项目,写一个TestClass脚本先:using UnityEngine;using System.Collections;using System.Collec原创 2016-12-13 10:06:48 · 5678 阅读 · 2 评论 -
在NGUI中插入粒子特效(ParticleSystem)
本文介绍如何让粒子显示在NGUI的图片之间,效果如第1张图那样(第2张图是正常情况下的显示) 先把下面2个脚本文件放到项目里:using UnityEngine;using System.Collections;using System.Collections.Generic;// ************************************************原创 2016-12-16 10:44:40 · 4088 阅读 · 2 评论 -
Unity一键打包为APK文件(windows平台)
网上关于一键打包的资料多不胜数,这篇文章只是本人的一个归纳总结,希望能让新人们少走点弯路。前一篇文章介绍了如何在windows下用批处理调用Unity方法,看这篇文章前请先看一下它。工作流程:1. 从Unity导出Android项目(批处理调用unity实现)2. Andriod项目更新(批处理调用AndroidSDK实现)3. 添加keystore文件到项目文件夹原创 2016-12-15 18:40:18 · 6935 阅读 · 1 评论 -
Unity动态绘制曲线Mesh的代码
之所以有这一篇文章,是因为项目需求,要在平面地图上用曲线画出路径,本来美术都把曲线画完了,可是地图的改动让一切作废,最后我决定做个动态的可调整曲线工具,花了好几天时间也算是圆满完成,重点参考了插件Math Library For Unity里的曲线工具,在此表示感谢!这是游戏中效果:编辑器窗口里的样子:Inspector里的样子:CurveMeshBuild原创 2016-12-19 10:45:36 · 11799 阅读 · 6 评论 -
Unity实现标准光照模型的Shader代码
本文展示实现标准光照模型(只关心场景里最亮的那一个平行光光源)下的光照效果。即自发光(Emissive)、环境光(Ambient)、漫反射(Diffuse)、高光(Specular)这四种光效的叠加,其中高光有两种实现方式Phong和Blinn-Phong,选择调用方法即可。下面介绍面板参数:_XXX_Color表示材质反射该光照的颜色,如果是黑色则表示忽略该光照;_C原创 2017-03-17 12:57:20 · 1838 阅读 · 0 评论 -
Unity中创建单例类基类
Unity的开发者一定都对单例熟悉的不能再熟悉了,由于游戏项目功能模块繁多,很多独立的模块都有自己单独的唯一入口,基本上都是用单例实现的,就像:public class InputManager : MonoBehaviour{ private static InputManager _instance; public static InputManager Instance {原创 2017-04-13 14:49:53 · 2960 阅读 · 0 评论 -
替换Unity脚本模板
每当我们用Unity创建一个新生成的C#脚本文件,然后用VS打开并修改。回到Unity后Unity就会出现警告,大致意思是脚本文件有些行是以“CR LF”结尾有些行是以“LF”结尾,换行格式不统一,Unity觉得难受,于是给出警告。“CR LF”和“LF”是文本内容中的换行标记,当一个文本编辑器读入一个文本的时候,当它检测到文本中包含有它认识的换行符的时候,它就会把后面的内容放到下一行显示,W原创 2017-04-26 11:31:51 · 1049 阅读 · 0 评论 -
NGUI中实时查看UIEventListener的通知对象
NGUI中有好几种方式可以获取按钮的点击事件,我最喜欢用UIEventListener(一行代码搞定),可惜这个脚本在运行时是个黑箱,我不知道它会给哪些脚本发消息。如果某个UI模块是别人写的,脚本调用又混乱的话,查起来就很麻烦了,最后忍不住了写了个UIEventListener的Inspector扩展,用来查看按钮消息传给谁,最终效果如下图所示:是不是爽多了?废话不多说,上干货原创 2016-12-02 17:13:48 · 782 阅读 · 0 评论