- 博客(30)
- 资源 (11)
- 收藏
- 关注
原创 Jetbrains系IDE的试用日期信息记录在哪里
声明:本文只做学习探究,不提供任何对开发工具的修改!现如今,JB系的IDE已经成了软件开发界的当红明星,哪怕面对某个宇宙第一IDE,也是不落下风,甚至更胜一筹。抛开良心满满的免费版本不提,其功能强大的收费版,价格也很平易近人,还提供了30天的试用时间。很多小朋友就想知道这个试用时间记录在哪里,这样就能方便的知道什么时候该买正式版了。我以Windows10+Rider2021.1举例吧,工具的设置信息都放在了下面位置的文件夹里,C:\Users\你的账户名\AppData\Roaming\JetB
2021-05-08 12:01:43
1114
原创 NGUI通用边框流光
UI层的矩形按钮、矩形头像,很多时候都需要有个高亮的边框来点缀。最近本人写了一个扩展版的UI边框,跟使用UITexture一样方便,得到了特效师的高度评价,便拿出来献丑分享。效果如下:小新的头像是一个UITexture,外面的边框是一个叫做UIHollowedTexture的UI组件(拿UITexture魔改而来),可以设置边框贴图,可以UV滚动。本文接下来会介绍UIHollowedTex...
2019-03-22 17:26:59
1164
1
原创 NGUI的UIInput限制输入字节数
UIInput有个字段是"Character Limit",它决定了输入字符数目的上限。每个字符不论是中文还是英文,都算1个字符。有个很常见的需求是根据字节数限制输入长度,英文数字算1个字节,中文算2个字节。我们需要修改UIInput以实现该功能,网上有相关的处理代码,可惜随着NGUI更新已经过时,我只好重新写了一个修改实现,并分享出来。因为整个文件过长,本文只提到修改的地方。打开文件 U...
2019-03-20 16:57:38
1039
原创 Unity在Win10环境下打不开项目的一个解决办法
本人最近几天遇到了一个很奇怪的问题,Unity选择打开项目后,进程就跑到后台去了,什么反应都没有,窗口始终出不来,没有报错没有弹窗。我多次重装不同版本的Unity,还重装了一次系统,结果问题依旧。 最后在网上找了半天,发现元凶竟然是游戏手柄,把手柄拔掉后,窗口立刻弹出来了,真是无语的很。希望遇到同样问题的朋友能在看到这篇文章后,别像我一样傻乎乎的重装了,拔掉你的USB外设,问题说...
2018-10-10 17:05:51
28273
11
原创 使用自定义Editor类在Unity下扩展Inspector窗口(通用)
Unity的Inspector窗口可以实时展示我们的脚本组件上的变量内容,但是内容比较简陋,很多时候为了显示更多内容或更好的排版,必须手写脚本组件的Editor类以实现目的。但是有些基础需求,我希望能默认提供给所有脚本组件使用,而无需为其定制Editor类。后来发现有个插件叫做Odin,它能让任意继承自Monobehaviour的脚本都可以实现其提供的Inspector扩展功能(它把所有脚本都...
2018-08-13 20:50:22
1911
原创 使用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
原创 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
1
原创 模仿NGUI实现SoftClip(二)
书接上文,这篇文章我们要在上文的基础上实现SoftClip效果。上图是最终效果,内层白框里面正常显示,外层白框外完全透明,两层白框间透明过渡。 首先我们要在ClipPanel脚本上添加过softWidth和softHeight这两个参数,用来定位内框,修改后的脚本如下: using UnityEngine;using System.Collections;using ...
2017-12-06 15:42:40
904
原创 模仿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
原创 C#自定义集合初始化器
集合类(比如ArrayList,List)的初始化跟正常类型比起来,可以多出来一个花括号包起来的小尾巴,称为“集合初始化器”,举个栗子:List list = new List() { 1, 2, 3, 4, 5 };下面介绍如何在自定义类里也实现这个功能。该类需要两个条件:1. 继承接口 IEnumerable2. 实现公共方法 Add(...)再次举栗子:c
2017-05-10 18:38:09
842
原创 将C#里的枚举Enum转换为int
将枚举类型转换为int在C#里非常简单,直接(int)强转就行了,可是这样写代码不方便,尤其让我这种懒癌患者难受,我喜欢用扩展方法的方式实现转换,比如这样string转int:public static class ExtendString{ public static int ToInt(this string s, int defaultValue = 0) { int i;
2017-05-04 14:53:02
16526
2
原创 一道小题目:给出一个n,求n!可被5整除多少次
先上笨方法int GetDivideTimes(int n, int key){ int result = 0; int sum = 1; for (int i = 2; i <= n; i++) { sum *= i; } while (sum % key == 0) { sum /= key; result++; } return result;}这个解法
2017-04-27 15:54:32
1150
原创 替换Unity脚本模板
每当我们用Unity创建一个新生成的C#脚本文件,然后用VS打开并修改。回到Unity后Unity就会出现警告,大致意思是脚本文件有些行是以“CR LF”结尾有些行是以“LF”结尾,换行格式不统一,Unity觉得难受,于是给出警告。“CR LF”和“LF”是文本内容中的换行标记,当一个文本编辑器读入一个文本的时候,当它检测到文本中包含有它认识的换行符的时候,它就会把后面的内容放到下一行显示,W
2017-04-26 11:31:51
1049
原创 Unity中创建单例类基类
Unity的开发者一定都对单例熟悉的不能再熟悉了,由于游戏项目功能模块繁多,很多独立的模块都有自己单独的唯一入口,基本上都是用单例实现的,就像:public class InputManager : MonoBehaviour{ private static InputManager _instance; public static InputManager Instance {
2017-04-13 14:49:53
2960
原创 C#中string.Format输出内容中含有花括号的解决方法
今天脑门一热写了如下一段代码string s = string.Format("{\"id\"=\"{0}\"}, \"name\"=\"{1}\"}", id, name);
2017-04-06 20:37:13
12887
原创 Unity实现标准光照模型的Shader代码
本文展示实现标准光照模型(只关心场景里最亮的那一个平行光光源)下的光照效果。即自发光(Emissive)、环境光(Ambient)、漫反射(Diffuse)、高光(Specular)这四种光效的叠加,其中高光有两种实现方式Phong和Blinn-Phong,选择调用方法即可。下面介绍面板参数:_XXX_Color表示材质反射该光照的颜色,如果是黑色则表示忽略该光照;_C
2017-03-17 12:57:20
1838
原创 斐波那契查找
斐波那契查找是一种在有序表中高效查找指定元素的算法,比折半查找要复杂一些,主要复杂在要多做不少准备工作。下面看它的工作流程: 1.计算并保存一个斐波那契序列的数组,方便以后取值。数组名记为f,例如f[1]=1,f[3]=3,f[5]=8 2.把有序数组的长度扩充到a.length=f[k]-1,k是满足条件的最小值,比如数组长度为13,那么就把它长度扩充到f
2017-03-03 00:20:41
2216
2
原创 二叉树的非递归遍历
二叉树节点:public class Node{ public int data = 0; public Node lchild = null; public Node rchild = null;}前序遍历:List PreorderTraverse(Node root){ List nodes = new List(); if (root == null) {
2017-02-23 10:39:08
305
原创 最短路径算法之Floyd
Floyd算法是一个求解加权连通图中两点之间最短距离的算法,是个很值得品味的算法。 如上图所示,这是一个无向加权连通图,不相连的点用虚线连接,其权值为∞。我们希望得到A->E的最小距离,根据目测能得到正确结果4(ABCDE走一圈)。我们把连通图转为邻接矩阵,因为是无向图,所以该图沿对角线对称(如果是有向图则非对称)Floyd算法所做的就是不断优化该邻接矩阵的路径权值
2017-02-15 15:38:26
594
原创 冒泡排序和插入排序的一点思考
冒泡排序和插入排序都是时间复杂度为O(n2)的排序算法,实现简单但是效率低下。这两个排序算法长相类似,初学者很容易弄混淆,今天我来简要分析二者区别。冒泡排序大体思路:把一串元素排成一列,每次从最下面的元素开始,与其上面一个元素进行对比,然后把大元素移到上面(如果下面的元素更大),这样轮一次,就把整个序列中的最大元素放到了列顶,然后把第二大元素放到次顶,如此循环……总共比较次数为(n-1)*(n
2017-02-15 10:00:55
366
原创 Unity动态绘制曲线Mesh的代码
之所以有这一篇文章,是因为项目需求,要在平面地图上用曲线画出路径,本来美术都把曲线画完了,可是地图的改动让一切作废,最后我决定做个动态的可调整曲线工具,花了好几天时间也算是圆满完成,重点参考了插件Math Library For Unity里的曲线工具,在此表示感谢!这是游戏中效果:编辑器窗口里的样子:Inspector里的样子:CurveMeshBuild
2016-12-19 10:45:36
11797
6
原创 在NGUI中插入粒子特效(ParticleSystem)
本文介绍如何让粒子显示在NGUI的图片之间,效果如第1张图那样(第2张图是正常情况下的显示) 先把下面2个脚本文件放到项目里:using UnityEngine;using System.Collections;using System.Collections.Generic;// ************************************************
2016-12-16 10:44:40
4086
2
原创 Unity一键打包为APK文件(windows平台)
网上关于一键打包的资料多不胜数,这篇文章只是本人的一个归纳总结,希望能让新人们少走点弯路。前一篇文章介绍了如何在windows下用批处理调用Unity方法,看这篇文章前请先看一下它。工作流程:1. 从Unity导出Android项目(批处理调用unity实现)2. Andriod项目更新(批处理调用AndroidSDK实现)3. 添加keystore文件到项目文件夹
2016-12-15 18:40:18
6935
1
原创 命令行运行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中实时查看UIEventListener的通知对象
NGUI中有好几种方式可以获取按钮的点击事件,我最喜欢用UIEventListener(一行代码搞定),可惜这个脚本在运行时是个黑箱,我不知道它会给哪些脚本发消息。如果某个UI模块是别人写的,脚本调用又混乱的话,查起来就很麻烦了,最后忍不住了写了个UIEventListener的Inspector扩展,用来查看按钮消息传给谁,最终效果如下图所示:是不是爽多了?废话不多说,上干货
2016-12-02 17:13:48
782
原创 Qt 设计师中使用QScrollArea控件
在QtDesigner拖一个Scroll Area控件到窗口中会生成 scrollArea 和scrollAreaWidgetContents 这两个部件。其中scrollAreaWidgetContents 是scrollArea 的子部件,它是个空的QWidget。我们把要实现滚动条效果的目标控件拖到scrollArea 里,使其成为scrollAreaWidgetCo
2012-11-20 12:39:11
2452
原创 关于GDI+中文件保存到原路径的一个解决办法
本人开始学习GDI+也有一个多月了,目的是在VC6的MFC里写个小的图片处理程序,但是遇到的一个最大问题就是保存到原路径无效,这个问题网上解决办法很多,但是我无意中发现了一个另类的方法。最开始发现自己直接保存的话偶尔是有效的,再仔细调试又无效了。这蛋疼了!抓着这个研究了好久,发现只要在读图后对图片做一次旋转或者翻转操作就能解决掉这个问题。函数是Image::RotateFlip()。比如:Image* pImg(filepath);pImg->RotateFlip(RotateNoneFlipX);//左右
2010-12-14 14:29:00
613
自己修改的OpenGL初学者代码
2010-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人