- 博客(36)
- 资源 (9)
- 收藏
- 关注
原创 如何让Unity JsonUtility支持数组列表的序列化和反序列化
该死的Unity JsonUtility 默认不支持数组列表的序列化和反序列化,好多项目选择放弃使用,转而使用Litjson,newtonsoft-json等三方库,但是如果开发一个三方库,不想依赖过多的其他库,就会很难受。
2025-02-25 11:25:25
282
原创 demo多场景运行切换工具
curvy插件中的,很好用using UnityEngine;using System.Collections;using UnityEngine.UI;using FluffyUnderware.DevTools.Extensions;using System.Collections.Generic;#if UNITY_EDITORusing UnityEditor;
2018-01-13 11:32:25
856
原创 Unity Editor 编辑器扩展 十五 提取NGUI 的Transform ResetPosition 功能
NGUI虽然不怎么在项目中应用了,但是里面这个ResetPosition功能还是非常好用的,可以拿出来在新项目中,实测可用代码放进Editor文件夹里面就可以用了using UnityEngine;using UnityEditor;[CustomEditor(typeof(Transform))]public class TransformInspector : Editor{ /
2018-01-04 15:38:43
1361
翻译 1.2设计模式在Unity中应用—Behavioral Pattern— Command Pattern 命令模式
Command Pattern 命令模式DefinitionParticipantsCommandConcreteCommandClientInvokerReceiver责任链模式代码结构案例1加减乘除计算器可以执行撤销 重复 命令Command Pattern 命令模式DefinitionEncapsulate a request as an object, thereby le
2017-12-25 19:21:28
412
翻译 1.1设计模式在Unity中应用—Behavioral Pattern— Chain of Responsibility Pattern 责任链模式
设计模式在Unity中应用—Behavioral Pattern— Chain of Responsibility Pattern 责任链模式DefinitionAvoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Ch
2017-12-22 14:58:17
396
翻译 Emacs 快速指南
Emacs 快速指南Emacs 快速指南.(查看版权声明请至本文末尾)【注意:位于【】之间的内容是译注,比如本行,下同。】Emacs 键盘命令通常包含 CONTROL 键(有时候以 CTRL 或 CTL 来标示)和 META 键(有时候用 EDIT 或 ALT 来标示)。为了避免每次都要写出全名,我们 约定使用下述缩写:C- 表示当输入字符 时按住 CONTROL 键。
2017-11-01 21:34:28
621
转载 Unity Editor 编辑器扩展 十四 将TortoiseSVN的基础操作内嵌Unity
集成svn同步工具,非常好用/* * 将TortoiseSVN的基础操作内嵌Unity * 这里只是举了几个简单的例子 * 具体命令可参见TortoiseSVN的help功能 * */ using UnityEngine; using UnityEditor; using System.Diagnostics; public class UnitySVN {
2017-01-23 13:14:24
1432
原创 Shader自学笔记 3.4.1 shader实现photoshop 中颜色混合模式
photoshop中的功能其实是封装了图形学算法,所以理论上其中的功能都可以用unity shader实现,下面模拟一下photoshop颜色混合模式中著名的加色模式和减色模式,也就是模拟自发光物体显像原理和反射光显像原理。 下面是一些常见混合模式计算公式: 上面的计算Unity已经封装,但是看看计算方法更有助于理解。Shader "Unity Shaders Book/Chapter 8/
2017-01-21 04:24:32
5273
2
原创 Shader自学笔记 3.3.2 采样遮罩纹理 使高光部分更加柔和
// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'Shader "Custom/texture/test4" {// 定义纹理属性 增加法线纹理 Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Main
2017-01-17 01:50:40
1131
原创 Shader自学笔记 3.3.1 采样渐变纹理应用于BlinnPhong光照模型
Shader "Custom/texture/test1" {// 定义纹理属性 Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Main Tex", 2D) = "white" {} _Specular("Specular",Color)=(1,1,1)
2017-01-17 01:12:50
753
原创 Shader自学笔记 3.2.2用世界空间计算法线纹理
// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'Shader "Custom/texture/test3" {// 定义纹理属性 增加法线纹理 Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Main
2017-01-16 04:03:48
902
1
原创 Shader自学笔记 3.2.1 用切线空间计算法线纹理
// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'Shader "Custom/texture/test2" {// 定义纹理属性 增加法线纹理 Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Main
2017-01-16 03:31:01
1675
原创 Shader自学笔记 3.1.1 采样纹理加入到光照模型中
Shader "Custom/texture/test1" {// 定义纹理属性 Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Main Tex", 2D) = "white" {} _Specular("Specular",Color)=(1,1,1)
2017-01-16 01:46:15
413
原创 Shader自学笔记 2.2.3 BlinnPhong光照模型
Shader "Custom/two/LightModel6" { Properties { _Diffuse ("Diffuse", Color) = (1,1,1,1) _Specular("Specular",Color)=(1,1,1,1) _Gloss("Gloss",Range(8.0,256))=20 } SubSha
2017-01-15 07:35:30
486
原创 Shader自学笔记 2.2.2 逐像素高光反射光照模型
Shader "Custom/two/LightModel5" { Properties { _Diffuse ("Diffuse", Color) = (1,1,1,1) _Specular("Specular",Color)=(1,1,1,1) _Gloss("Gloss",Range(8.0,256))=20 } SubSha
2017-01-15 07:18:43
523
原创 Shader自学笔记 2.2.1 逐顶点高光反射光照模型
Shader "Custom/two/LightModel4" { Properties { _Diffuse ("Diffuse", Color) = (1,1,1,1) _Specular("Specular",Color)=(1,1,1,1) _Gloss("Gloss",Range(8.0,256))=20 } SubSha
2017-01-15 06:51:06
623
原创 Shader自学笔记 2.1.3 半兰伯特光照模型实现
// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'Shader "Custom/two/LightModel" { Properties {// 定义Color类型属性
2017-01-15 05:50:42
826
原创 Shader自学笔记 2.1.2 逐像素漫反射光照模型实现
// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'Shader "Custom/two/LightModel" { Properties {// 定义Color类型属性
2017-01-15 05:36:22
498
原创 Shader自学笔记 2.1.1 逐顶点漫反射光照模型实现
Shader "Custom/two/LightModel1" { Properties {// 定义Color类型属性 _Diffuse ("Diffuse", Color) = (1,1,1,1) } SubShader { Pass{ Tags{"LightMode"="ForwardBase"} CGPROGRAM
2017-01-15 05:09:46
505
原创 Shader自学笔记 1.3 使用属性控制渲染效果
Shader "Custom/one/simple shader" { Properties{// 声明Color属性 _Color("Color",Color)=(1.0,1.0,1.0,1.0) } SubShader { pass{ CGPROGRAM //定义顶点函数 #pragma verte
2017-01-15 02:49:06
540
原创 Shader自学笔记1.2 结构体作为函数的参数和返回值
Shader "Custom/one/simple shader" { SubShader { pass{ CGPROGRAM //定义顶点函数 #pragma vertex vert //片元函数 #pragma fragment frag// 使用结构体来定义顶点着色器的输入
2017-01-15 02:30:32
853
原创 Shader自学笔记1.1 Hello Shader
对Shader一直比较感兴趣,开启学习,顺便把学习过程在此记录,程序猿在开启任何新语言的学习都会Say hello,好吧,今天表示正式和Shader问好 Hello Shader!Shader "Custom/one/simple shader" { SubShader { pass{ CGPROGRAM //定义顶点函数 #pr
2017-01-15 01:34:22
571
原创 一个时钟显示小程序
显示时钟using UnityEngine;using System;public class ClockAnimator : MonoBehaviour { private const float hoursToDegrees = 360f / 12f, minutesToDegrees = 360f / 60f, secondsToDegr
2016-12-25 01:27:02
2408
原创 Unity Editor 编辑器扩展 十三 自定义创建资源
目录初级资源创建中级资源创建更自由的自定义资源创建初级资源创建Editor文件夹下创建脚本:using UnityEngine;using UnityEditor;public class CreateTest{ [MenuItem ("Assets/Create ExampleAssets")] static void CreateExampleAssets ()
2016-12-22 04:16:04
5471
原创 Unity Editor 编辑器扩展 十二 OverWriter
项目Assets资源管理时,常常会有重复的资源多次被导入,导致项目冗余,这里一个小工具可以在导入时检测,即时给你提示 只需要在Editor文件中创建下列两个脚本:using System.IO;using System.Text.RegularExpressions;using UnityEditor;public class OverwriteAsset{ public str
2016-12-22 03:50:49
958
原创 Unity Editor 编辑器扩展 十一 Inspector可排序列表
目录可排序列表简单使用可排序列表简单使用创建如下脚本并挂载到物体上:using UnityEngine;using System.Collections;public class Example1 : MonoBehaviour { [SerializeField] string[] texts;}在Editor中创建如下脚本:using UnityEngine;using Un
2016-12-22 02:55:56
6740
1
原创 Unity Editor 编辑器扩展 十 Handle控件
目录Handle 方案按钮控制柄窗口Handle 方案1 按钮2 控制柄3 窗口效果见图: 创建HandleTest.cs脚本,挂载到一个控物体上,然后在Editor文件夹下创建如下脚本:using UnityEngine;using UnityEditor;[CustomEditor (typeof(HandleTest))]public class HandleInspector :
2016-12-22 01:51:23
2875
原创 Unity Editor 编辑器扩展 九 Gizmos
简单介绍一下Gizmos,在工程测试、编辑和Debug中用处还是挺多的。 目录Gizmos 简单实用Gizmos高级使用Gizmos 简单实用当我们想在Scene窗口对物体进行标记时,可以选选择画一个简单的图形using UnityEngine;using System.Collections;public class GizmosTest : MonoBehaviour {// 选中时绘
2016-12-12 02:37:04
2947
原创 Unity Editor 编辑器扩展 八 Undo
Unity的Undo撤销操作也是可以自定义的,当我们将自己的操作组册到Undo事件中,那么,我们就可以按照自己的方式撤销操作了。目录Undo操作的简单测试Undo操作的分组折叠将Undo操作分组撤销到指定位置Undo操作的简单测试下面是一些撤销测试,非常简单,直接看代码using UnityEngine;using UnityEditor;public class UndoTest {
2016-12-12 01:29:03
5662
原创 Unity Editor 编辑器扩展 七 创建脚本模版
这篇文章介绍一下用编辑器窗口自定义创建脚本模版。 目录了解模版脚本深入了解模版了解模版脚本我们在Unity中创建脚本时会自动创建如下的脚本 在Unity的安装文件中存储了它的模版,我们可以按下列路径查看: Mac /Applications/Unity/Unity.app/Contents/Resources/ScriptTemplates Windows C:\Program
2016-12-12 00:32:42
2745
原创 Unity Editor 编辑器扩展 六 EditorWindow
目录窗口弹出框窗口创建查找游戏物体为窗口添加图标和菜单EditorWindow的简单用法之前都用过了,这里介绍一些特殊的用法窗口弹出框在Editor下创建脚本如下:using UnityEditor;using UnityEngine;public class WindowExample1 : EditorWindow{ [MenuItem("Window/WindowExample
2016-12-03 15:17:19
3023
1
原创 Unity Editor 编辑器扩展 五 EditorGUI
目录 [TOC]创建一个窗口,添加简单控件在Editor创建脚本GUIWindow1如下,添加一些简单的控件,体验一下他们的功能using UnityEngine;using UnityEditor;public class GUIWindow1 : EditorWindow{ // 开启一个窗口 [MenuItem ("Window/Example1")] stat
2016-11-26 20:29:51
11004
原创 Unity Editor 编辑器扩展 四 ScriptableObject类定制可序列化数据
目录目录ScriptableObject类定制可序列化数据工具类ScriptableObjectUtility创建一个可打包的数据类YouClass创建对应的数据类MyData打包按钮生成数据文件读取数据ScriptableObject类定制可序列化数据这个类很有用,它可以打包数据对象,并且这个数据对象是序列化的,用来存储数据非常方便,比json xml等更方便,容易存取,这里用它做一
2016-11-25 01:04:53
2322
原创 Unity Editor 编辑器扩展三 Unity Editor 数据持久化及Editor窗口的初识
目录目录Unity Editor 数据持久化及窗口的使用代码 Test2_1csUnity Editor 数据持久化及窗口的使用学习一下编辑器数据永久保存,和PlayerPrefs基本上是一样的,顺便熟悉下新建窗口,里面控件类似OnGUI。代码 Test2_1.csusing UnityEngine;using UnityEditor;public class ExampleWindow :
2016-11-23 02:29:34
2692
原创 Unity Editor 编辑器扩展二 Inspector面板特殊属性
目录目录Inspector面板特殊属性代码 Test2_1cs代码 Test2_2cs代码 Test2_3cs代码 Test2_4_2cs代码 Test2_4_4csInspector面板特殊属性这个知识点网上介绍很多,在此只是学习,其实也很简单,贴出代码,一看便懂。代码 Test2_1.csusing UnityEngine;using System.Collections;publ
2016-11-23 01:22:40
5754
原创 Unity Editor 编辑器扩展一 编辑器特殊文件夹及内置资源读取
Unity Editor 编译器扩展(一)使用Unity引擎时 ,为了更快速任性开发,编译器扩展是必不可少的,子曰:“工欲善其事,必先利其器“说的正是这个道理,做好编译器开发,在整个项目中就会达到事半功倍的效果,废话不多说,在此纪录下学习过程。目录Unity Editor 编译器扩展一目录编辑器相关文件夹内置资源包代码 Test1_1cs代码Editor1_1cs 这个要放到Editor文
2016-11-20 22:45:38
5018
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人