Unity
gd_2015
这个作者很懒,什么都没留下…
展开
-
Unity容易造成空引用的习惯
1 很多第三方插件里面都在Unity提供的的生命周期Awake里面完成一些初始化。 Test2public class Test2 : MonoBehaviour { private Text textCom; void Awake() { this.textCom = this.gameObject.GetComponent<Text&...原创 2018-08-27 11:21:51 · 1681 阅读 · 0 评论 -
UNITY 项目优化
1、CPU1.1 DrawCall1.1.1 什么是DrawCallCPU与GPU并行工作,共同使用命令缓冲区。CPU向缓冲区填充命令、GPU从其中取命令。DrawCall就是其中一种命令。其他命令还有改变渲染状态等(例如改变使用的着色器,使用不同的纹理等)1.1.2 为什么DrawCall多了会影响在每次调用DrawCall之前,CPU会需要向GPU发送很多内容:数原创 2016-10-21 15:21:13 · 842 阅读 · 0 评论 -
Unity Editor扩展
1、MenuItemusing UnityEngine;using System.Collections;using UnityEditor;public class TestScriptableObject : ScriptableObject { [MenuItem("CustomTools/AddChild")] static void MenuAddChild(){原创 2016-09-20 17:16:05 · 1472 阅读 · 0 评论 -
NGUI 九宫格切图
UISprite 的 Type 选择 Sliced 选择Edit 中的 Border原创 2016-09-18 16:29:54 · 5036 阅读 · 0 评论 -
Shader Blend混合效果
1、Blend SrcAlpha OneMinusSrcAlpha 正常模式(透明度混合) 2、Blend OneMinusDstColor One 柔和相加(soft Additive) 3、Blend DstColor Zero 正片叠底 (Multiply)相乘 4、Blend DstColor SrcColor 两倍相乘 (2X Multiply) 5、 变暗Ble原创 2016-09-14 10:06:23 · 28948 阅读 · 3 评论 -
顶点Blinn-Phong.Shader
Blinn-Phong:高光的一种,高光范围更大,更亮Shader "Custom/Light/BlinnPhongLight"{ Properties{ _Diffuse("Diffuse", Color) = (1, 1, 1, 1) _Specular("Specular", Color) = (1, 1, 1, 1) _Gloss("G原创 2016-08-31 11:57:52 · 632 阅读 · 0 评论 -
片段高光.Shader
Shader "Custom/Light/SpecularLightFrag"{ Properties{ _Diffuse("Diffuse", Color) = (1, 1, 1, 1) _Specular("Specular", Color) = (1, 1, 1, 1) _Gloss("Gloss", Range(1, 256)) = 2原创 2016-08-31 11:15:16 · 488 阅读 · 0 评论 -
顶点高光.Shader
Shader "Custom/Light/SpecularLightVert"{ Properties{ _Diffuse("Diffuse", Color) = (1, 1, 1, 1) _Specular("Specular", Color) = (1, 1, 1, 1) _Gloss("Gloss", Range(8.0, 256)) =原创 2016-08-30 14:08:08 · 709 阅读 · 0 评论 -
片段漫反射.Shader
Shader "Custom/Light/DiffuseLightFrag"{ Properties{ _DiffuseColor("DiffuseColor", Color) = (1, 1, 1, 1) } SubShader{ Pass{ Tags{ "LightModel" = "原创 2016-08-29 19:20:28 · 466 阅读 · 0 评论 -
顶点漫反射.Shader
Shader "Custom/Light/DiffuseLightVert"{ Properties{ _DiffuseColor("DiffuseColor", Color) = (1, 1, 1, 1) } SubShader{ Pass{ Tags{ "LightModel" = "F原创 2016-08-29 18:00:57 · 694 阅读 · 0 评论 -
Unity WWW 和 AssetBundle只要将资源扔在服务器上就可以了吗?
答案肯定是否定的 一、为了实际验证这个功能的实际作用,我作死的准备 1、一个服务器,一个域名:租个阿里云服务器(最低配置70多元一个月),买个域名(首次购买只要4-9元哦) 2、安装一个http服务器,我用的是Nginx服务器,具体Apache的服务不知道是怎么配置。 3、看了momo的AssetBundle功能介绍二、功能实现-(服务器) 1、在服务器上创建个目录,然后把资源扔到服务器上原创 2016-04-18 15:12:05 · 5872 阅读 · 2 评论 -
学习网站
Unity Shader: http://docs.unity3d.com/Manual/SL-VertexProgramInputs.html原创 2016-04-28 12:29:31 · 584 阅读 · 0 评论 -
进击的Unity特效------Shader目录
1、水面波纹2、序列帧动画3、2D贴图 旋转原创 2016-05-11 19:00:12 · 621 阅读 · 0 评论 -
Unity 技能冷却使用的两种倒计时
Unity、NGUI,那种方法更好呢? 1、Update中using UnityEngine;using System.Collections;public class SkillCDUpdatce : SkillCDShowIconBase { private bool bIsInCD; public float fCD; private float fTimeCount;原创 2016-10-27 15:26:40 · 6121 阅读 · 2 评论 -
Unity 菜单扩展 [] --专业名词应该是Attribute
1、[AddComponentMenu(“”, 6)] 添加一个组件菜单属性,允许你放一个脚本在Compoent菜单下。原创 2017-10-09 10:28:36 · 278 阅读 · 0 评论 -
Unity编辑器拓展-基于EditorWindow的三消类地图编辑器
效果图导出配置文件rollMatrixPool ={ [1] = { { { "E","E,i_2","E","E","E,i_2","E","E",}, { "E","E","E,i_2","E&quo原创 2018-04-12 14:50:12 · 3258 阅读 · 2 评论 -
Unity内置Shader-Text Shader(3DText)
// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)Shader "GUI/Text Shader" { Properties { //这里的贴图为字体里面的FontTexture _MainTex ("F...原创 2018-04-04 14:05:47 · 6852 阅读 · 1 评论 -
Unity 接入 Facebook登录SDK7.11.1 (Android、IOS)
sdk目录Example示例用来做测试很好,打包时记得删掉Plugins IOS与Android库目录公司项目一般会做多渠道因此会把Android的libs与IOS的framework放在项目外面呢,当打包时读取渠道配置表再把这些放回来。 注意新版本的sdk中Plugins新增了Editor与Gameroom 这些我没仔细看,想来应该是在打包的时候来处理...原创 2018-03-28 11:03:05 · 7500 阅读 · 4 评论 -
UnityShader屏幕后处理-运动模糊(初级)
初级实现原理: 将前一帧的图像缓存,与这一帧的图像进行blend混合,形成新的图像。 c# MotionBlur.csusing UnityEngine;using System.Collections;public class MotionBlur : PostEffectsBase { public Shader motionBlurShader; pri...原创 2018-03-05 13:18:10 · 1257 阅读 · 0 评论 -
图片处理-饱和度、对比度
1 饱和度-饱和度越小图像越灰。fixed luminance = 0.2125 * renderTex.r + 0.7154 * renderTex.g + 0.0721 * renderTex.b;fixed3 luminanceColor = fixed3(luminance, luminance, luminance);finalColor = lerp(luminanceCo...原创 2018-02-23 17:53:15 · 640 阅读 · 0 评论 -
UnityShader屏幕后处理-Bloom效果(朦胧模糊)
原理:1 取出图片中比较亮(饱和度比较高、远离灰色)的一部分图 2 对1中的图进行高斯模糊的到新的图 3 将2中的图与原图色彩相加1 取出图片中比较亮的的区域 C#material.SetFloat("_LuminanceThreshold", luminanceThreshold);int rtW = src.width/downSample;int rtH = src.he...原创 2018-03-01 16:35:33 · 2995 阅读 · 0 评论 -
PropertyDrawer
Unity官网链接 两个作用 1 自定义每个序列化实例的外观 2 自定义脚本自定义变量的外观作用1 如果你有序列化的类,你可以使用PropertyDrawer去控制它在Inspector的外观using System;using System.Collections;using UnityEngine;public enum Ingredient...翻译 2018-02-22 16:01:31 · 1898 阅读 · 0 评论 -
UnityShader屏幕后处理-边缘检测(3D)
边缘检测两个算法 1 片元着色器中计算每个纹素的卷积,设置阀值,判断该点是否为边缘,在边缘颜色与屏幕图片中做插值,如果为边缘则显示边缘颜色。 通常还会设置一个变量,是否改变出边缘外的颜色。 2 在片元着色器中将纹素重新转换到世界坐标,取得该纹素相对于相机的深度与法线,判断该纹素与周围纹素的深度与法线,如果差距过大(相对于自定义的阀值)则为边缘。 方法1适用于2d图片,方法2在3d的运用效果...原创 2018-03-09 11:23:39 · 1034 阅读 · 0 评论 -
Unity强制设定不同脚本的同一生命周期执行顺序
同一场景中的不同不同物体上挂载的脚本的同一生命周期执行顺序是不确定的,比如:场景中存在两个物体A、B分别挂载脚本SA、SB。SA与SB中都有Awake()生命周期。这时候是不能确定这两个方法的执行顺序的。可以通过设置脚本来强制确定他们的执行顺序。 后面的数字越小执行顺序越靠前。也可以设置负数。...原创 2018-02-28 16:44:47 · 517 阅读 · 0 评论 -
UnityShader屏幕后处理-高斯模糊
原理:通过把一个像素(其实也不是像素,是纹素,Texel)及其周围8个像素按照一定权重相加求得该像素最终的颜色。因此该纹素的最终颜色很大程度上取决于该纹素周围的纹素的颜色,从而达到模糊的效果。 1 取得周围纹素uv _BlurSize为模糊程度,如果选取的周围8个纹素距离目标纹素很远,则模糊程度更大。v2f vertBlurVertical(appdata_img v) { v2f...原创 2018-02-27 15:28:41 · 872 阅读 · 1 评论 -
UnityShader屏幕后处理-边缘检测,经典的插值lerp
边缘检测原理。通过每个色块的周围色块计算该色块的卷积。图片中各个边缘的卷积不同于其他像素块的,至于大于或者小于由算法决定。fixed luminance(fixed4 color) { return 0.2125 * color.r + 0.7154 * color.g + 0.0721 * color.b; }half So...原创 2018-02-26 18:27:54 · 1963 阅读 · 0 评论 -
UnityShader屏幕后处理
屏幕后处理实际为利用shader处理最终呈现在相机中的图片。但是shader不能直接与c#数据传递,所以创建material来沟通。 1 创建shader shader中的_MainTex为默认相机最终图片所以必须。然后就可以调整整张图片的风格渲染。 2 检查这个平台是不是支持图片效果。protected bool CheckSupport() { if (Sys...原创 2018-02-26 10:30:00 · 1550 阅读 · 0 评论 -
旋转.shader
代码:前面的属性不用管,算法都在片段处理器上Shader "Custom/RotateTexShader"{ Properties { _RotateSpeed("Rotate Speed", float) = 1.0 _BaseColor("Base Color", Color) = (1,1,1,1) _BaseTexU("Bas原创 2016-05-11 20:03:34 · 1917 阅读 · 0 评论 -
序列帧动画.shader
由于gif丢帧了。。图片也不是很好看。。肯定不是我代码的问题。。 Shader "Custom/AnimationShader"{ Properties { _Color("Base Color", Color) = (1,1,1,1) _MainTex("Base(RGB)", 2D) = "white" {} } SubShade原创 2016-05-11 19:31:49 · 2380 阅读 · 0 评论 -
水面波纹.shader
1、上面的水面波纹效果是从一个大神代码里面扣出来的。 为了看算法,尽量减少变量,只实现效果,减去了 Alpha 值随 Y 值变化效果 里面有很多数据可以写成变量,便于调整效果,为了方便查看关键代码,尽量减少可变属性。关键代码已有片段编辑中的一行,已经写了很长的注释Shader "Custom/RippleShaderMy"{ Properties { _原创 2016-05-11 18:53:29 · 7379 阅读 · 0 评论 -
Unity 读取文件 TextAsset读取配置文件
1 支持文件类型 .txt .html .htm .xml .bytes .json .csv .yaml .fnt2 寻找文件 1 //Load texture from disk TextAsset bindata= Resources.Load("Texture") as TextAsset;原创 2016-01-27 09:37:32 · 23203 阅读 · 2 评论 -
C# 单例模版(使用where)
模版类public class Singleton<T> : MonoBehaviour where T : MonoBehaviour{ private static T instance; /** Returns the instance of this singleton. */ public static T Instance {原创 2016-01-27 09:36:10 · 1889 阅读 · 1 评论 -
Unity NGUI 3.7.8 控件使用
unity ngui设置点击事件 ngui控件.gameObject.AddComponent(); //比如 public UIToggle mToggle; //mToggle.gameObject.AddComponent(); UIEventListener.Get(mToggle.gameObject).onClick = ClickToggle;原创 2016-01-05 18:22:39 · 1151 阅读 · 0 评论 -
Unity Mecanim 总结
Unity Mecanim 总结 选中FBX模型 1、生成模型的Avatar Rig Animation Type Humanoid,即双足类型的动画。这种类型可以支持大多数的类人形的模型 Lagacy类型用来兼容Unity3D低版本中的模型动画 Generic类型是一种介于人形和非人形的模型之间的原创 2016-01-05 18:26:05 · 613 阅读 · 0 评论 -
Unity 存储目录
1、 Application.persistentDataPath 该文件存在手机沙盒中,因为不能直接存放文件, (1)通过服务器直接下载保存到该位置,也可以通过Md5码比对下载更新新的资源 (2)没有服务器的,只有间接通过文件流的方式从本地读取并写入Application.persistentDataPath文件下,然后再通过Applicati原创 2016-01-07 13:03:31 · 580 阅读 · 0 评论 -
Unity 数据存储
1 PlayerPrefs DeleteAll Removes all keys and values from the preferences. Use with caution. DeleteKey Removes key and its corresponding value from the preferences. GetFlo原创 2016-01-07 13:12:03 · 718 阅读 · 0 评论 -
unity Shuriken粒子系统 ---飞镖系统?
1.默认展开的是粒子系统的初始化模块: 此模块为固有模块,不可删除或者禁用。该模块定义了粒子初始化时的持续时间、循环方式、发射速度、大小等一些列基本的参数。1 Duration 持续时间2 Looping 是否循环3 Start Delay 延时4 Start Lifetime 5 Start Speed6 Start Size7 Start Rotation8 Start Color原创 2016-01-06 18:38:07 · 1256 阅读 · 0 评论 -
Unity 模拟爆炸后的物体碰撞
public class ClickAndBoom : MonoBehaviour {private float BOOMRADIUS = 20.0F;private float FORCE = 1000.0F;// Use this for initializationvoid Start () {}// Update is called once per framevoid Update原创 2016-01-06 18:36:47 · 3003 阅读 · 0 评论 -
Unity 点击Terrian实现物体移动
public class ClickAndMove : MonoBehaviour {private float SPEED_SPHERE = 10.0F;public GameObject mSphere;private Vector3 mDestinationPosition;// Use this for initializationvoid Start () {}// Update原创 2016-01-06 18:35:52 · 487 阅读 · 0 评论 -
Unity 实现点击物体
void Update () { if (Input.GetMouseButtonDown (0)) { ClickCube(); }}/*点击物体*/private void ClickCube(){ RaycastHit raycastHit; var ray = Camera.main.ScreenPointToRay(Input.mou原创 2016-01-06 18:34:06 · 2728 阅读 · 0 评论