自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (37)
  • 收藏
  • 关注

原创 C++实现委托机制之完整代码实现(一)

头文件 MyDelegate.h 代码如下:#include #include #include class IDelegate { public: virtual ~IDelegate() { } virtual bool isType(const type_info& _type) = 0; virtual void invoke() =

2017-04-24 17:37:29 351

转载 C++实现委托机制(一)

1.引言:             如果你接触过C#,你就会觉得C#中的delegate(委托)十分灵巧,它的用法上和C\C++的函数指针很像,但是却又比C\C++的函数指针更加灵活。并且委托可以一对多,也就是可以注册多个函数,甚至是某个类的非静态成员函数。而实现事件消息机制【1】也十分依赖于委托机制。基于这样的目的,我们试着在C++上封装出这样的一个委托机制。【1

2017-04-24 17:31:59 300

原创 XML 创建多个Element的XML文件

代码如下:using UnityEngine;using System;using System.Text;using System.IO;using System.Xml;using System.Collections;public class XmlDoc : MonoBehaviour { string savePath = Directory.GetCurrentD

2017-04-24 11:15:42 1563

转载 C++普通函数指针与成员函数指针实例解析

C++的函数指针(function pointer)是通过指向函数的指针间接调用函数。相信很多人对指向一般函数的函数指针使用的比较多,而对指向类成员函数的函数指针则比较陌生。本文即对C++普通函数指针与成员函数指针进行实例解析。一、普通函数指针很多新手对typedef void (*funcptr)()这个语句疑惑了,究竟是什么意思?其实这也是C/c++的基础。

2017-04-21 15:45:12 674

转载 C++ 在继承中虚函数、纯虚函数、普通函数,三者的区别

1.虚函数(impure virtual)  C++的虚函数主要作用是“运行时多态”,父类中提供虚函数的实现,为子类提供默认的函数实现。  子类可以重写父类的虚函数实现子类的特殊化。  如下就是一个父类中的虚函数:class A{public: virtual void out2(string s) { cout"A(out2

2017-04-21 15:31:17 380

转载 C++中的RTTI机制详解

前言RTTI是”Runtime Type Information”的缩写,意思是运行时类型信息,它提供了运行时确定对象类型的方法。RTTI并不是什么新的东西,很早就有了这个技术,但是,在实际应用中使用的比较少而已。而我这里就是对RTTI进行总结,今天我没有用到,并不代表这个东西没用。学无止境,先从typeid函数开始讲起。typeid函数typeid 是 C++ 的关键字之一,

2017-04-21 15:29:23 538

转载 C++ map类学习笔记

Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。1. map最基本的构造函数;mapmapstring; map

2017-04-20 17:02:22 534

转载 C++ list 类学习笔记

双向循环链表list        list是双向循环链表,,每一个元素都知道前面一个元素和后面一个元素。在STL中,list和vector一样,是两个常被使用的容器。和vector不一样的是,list不支持对元素的任意存取。list中提供的成员函数与vector类似,不过list提供对表首元素的操作push_front、pop_front,这是vector不具备的。和vector另一点不

2017-04-20 15:46:00 569

原创 VS 注释多行与取消多行注释快捷键

最近在使用VS2010开发ASP.NET,突然发现想全部注释时找不到注释的快捷键,网上查了下,原来很简单,只是需要使用组合键。注释: 先CTRL+K,然后CTRL+C取消注释:先CTRL+K,然后CTRL+U...

2017-04-13 17:12:10 179053 14

原创 编译报错 Warning as Error:

报错如下:解决方法:1:在“解决方案管理器”界面,右键点击项目,选择“属性”;2:点击“生成”;3:把“将警告视为错误”中的“全部”转换成“无”或“特定警告”;如下图所示:

2017-04-13 17:11:10 2908

转载 LINK:fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏(VS2010)

很多伙伴在更新VS2010,或者卸载VS2012安装2010后,建立Win32 Console Project/MFC项目时会出现"LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏"的错误。错误描述:解决方案: 第一步:将 项目——项目属性——配置属性——连接器——清单文件——嵌入清单 “是”改为“否”

2017-04-05 16:52:05 492

转载 Q&A——资源管理(十五)

资源管理Q1:我们项目做AssetBundle打包时,发现如果资源所依赖的C#Script的Public成员变量有变化时,用新代码加载旧的AssetBundle就会不兼容。有没有什么方法能判断这些Script在变化时是否需要重新打AssetBundle呢?目前我们使用.CS文件的MD5来判断是否需要重新打包,但其实这样应该有很多不必要的重复打包,对吗?该问题的本质原因是新代码的

2017-04-01 14:26:49 1038 1

转载 Q&A——性能

性能Q1:在整体的性能消耗上,CPU和GPU各占一半合理吗?如果不是,各占多少为好?还是说需要根据机型来看?其次,我如何知道游戏在手机上的GPU消耗?Profiler是看不到的,有工具推荐吗?首先,CPU和GPU是并行的,也就是CPU在运算的时候GPU也在运算,一帧的结束时间是两者中比较晚结束的那个。因此,一般我们在考虑这个问题的时候,经常会说是CPU bound还是GPU

2017-04-01 14:24:27 384

转载 Q&A——代码加载

代码加载Q1:我的项目在加载过程时经常崩溃,项目加载代码如下。想请问这种写法是否存在问题,是否会导致崩溃?首先,崩溃还是要看具体崩溃log,看看到底是哪里崩溃,定位真正的崩溃原因(说不定看完后还不是加载的问题)。其次,来谈谈代码的问题,一共有三点需要研发团队考虑:(1)代码中通过For循环开启一个Coroutine,通过WWW加载AB,然后保存www.bytes

2017-04-01 11:43:05 584

转载 Q&A——资源加载/卸载

资源加载/卸载Q1:如下图,通过纹理图片通过文件流形式加载到内存,这样的资源还可以使用Resources.UnloadUnusedAssets()和Resources.UnloadAsset(m_Asset)进行资源卸载吗?如果是自己载入内存并初始化为Unity的Texture2D,则还是要重点查看Texture2D对象的创建方式。一般来说,会用new Textur

2017-04-01 11:33:59 612

转载 Q&A——性能优化(三)

性能优化Q1:请问怎么优化下图这两者的GC Alloc?每次AddComponent 都会有这么多的开销。图中的两项GC Alloc是在进行AddComponent时不可避免的,因此只能通过尽量减少AddComponent的调用次数来进行优化。

2017-04-01 11:31:42 575

转载 Q&A——UI输入(三)

UI 输入Q1:UWA的直播里说的“将UI的Layer设置为不可见,从而将UI屏蔽”的方式具体是怎么实现的?为什么我在NGUI下直接设置UI元素的Layer不会生效呢?在NGUI中使用修改Layer的方式隐藏界面,必须以UIPanel为单位,即直接修改UIPanel所在的GameObject的Layer才会生效。因为对于UISprite或者UILabel,都会在运行时被强制修改为与

2017-04-01 11:26:45 763

转载 Q&A——物理

物理Q1:请问Physics.Processing的占用过大一般是因为什么原因导致的?影响物理系统耗时的因素主要为Contacts数量(碰撞对数量)、Rigidbody API的使用情况和每帧的调用次数。第一种情况是最为常见的引发物理模块耗时较大的原因,因此,我们在UWA性能报告中对其进行了详细的分析,如果你的报告中Contacts数量较高,切记要验证其

2017-04-01 11:16:34 774

转载 Q&A——图形渲染(三)

图形渲染Q1:我们的游戏中有一些静止的建筑,会和整个场景一起烘焙(包括了每个建筑在地表的阴影)。现在希望这些建筑是逐步开放的,比如玩家1级的时候只有建筑A开放,2级的时候建筑B开放,现在的问题是当建筑未开放时(SetActive(false))地表的相关阴影还在。这种问题一般是怎么处理的?这种问题是因为研发团队将整个场景烘焙成一张Lightmap所致。如果地图中的建筑是固定

2017-04-01 11:11:36 739

转载 Q&A——粒子系统

粒子系统Q1:粒子系统里面使用到的模型,是不是读写开关必须要打开,否则会崩溃?在Unity 5.3早期的版本中,我们确实收到过类似的反馈,在某些特效上使用了没有设置 Readable 的 Mesh 时就会触发崩溃,且在崩溃日志中会出现ParticleSystemRenderer::UpdateCachedMesh的堆栈。但目前我们在较新的版本上(例如4.7.2,5.3.5 等版

2017-04-01 11:08:07 335

转载 Q&A——其他

其他Q1:SkinnedMeshRenderer的Mesh是不是不能动态修改?属性里只开放了SharedMesh。如果需要动态修改 SkinnedMeshRender 对应的 Mesh,则可以通过读写 SharedMesh 来实现,类似于 MeshFilter.sharedMesh 的用法,参见:https://docs.unity3d.com/ScriptRefere

2017-04-01 11:07:11 448

Unity Shader 技能冷却效果

使用Unity Shader实现技能冷却效果,与NGUI插件中的技能CD效果类似。

2018-05-03

UnityShader 用Plane实现旗帜飘扬效果

UnityShader 用Plane实现简单旗帜飘扬效果

2018-05-02

Simple LOD v1.6.unitypackage

SimpleLOD,除了同样拥有Mesh Baker所具有的Mesh合并、Atlas烘焙等功能,它还能提供Mesh的简化,并对动态蒙皮网格进行了很好的支持。该插件可在Run-time和Editor中都可以使用,同时开放了源码,大家可以根据项目的实际情况而作修改。

2018-04-17

Unity3d 动画重定向 动力学骨骼插件DynamicBone

通过动态计算角色位移和动画,产生的飘带物理效果,可用在各种动画效果制作,比如:制作头发飘动动画效果;

2018-04-03

VS调试利器autoexp.dat

VS调试利器,可以查看调试时看不到的值,使用方法(以VS2010为例): 1:替换到Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Packages\Debugger  2:重启visual studio

2017-07-05

Visual assist x trial key破解补丁

Visual Assist X 试用期一个月, 试用是全功能的, 这点还不错. 但是到期的话就不能继续了,先把visual studio软件关闭,运行vax_patch.exe,重启visual studio后,就可以使用了!

2017-06-24

Visual Assist X 2114

Visual Assist X是一款非常好的Microsoft Visual Studio插件,它可以完全集成到您的Microsoft开发环境中,升级了您的IDE,在不改变编程习惯的同时就可以感受到Visual Assist X为您带来的好处。软件支持Microsoft Visual Studio 2003-2012,C/C++,C#,ASP,VisualBasic,Java和HTML等语言,能自动识别各种关键字、系统函数、成员变量、自动给出输入提示、自动更正大小写错误、自动标示错误等。使用Visual Assist X有助于提高开发过程的自动化和开发效率。

2017-05-18

Avatar换装系统

它是一个Unity项目,显示如何在Unity中构建Avatar换装系统。 换装系统在游戏中非常重要,特别是在MMO游戏中。 通常,换装系统包含两个重要部分。 由于装备的外观不同(网格不同),因此将这些网格合并在一起是必要的。 第二,合并网格后,新网格包含许多材料(在此项目中,它有4种材质),这意味着它至少有4个drawcalls(依赖于着色器)。 所以合并材料在一起将减少drawcalls和提高游戏性能。

2017-03-21

Fast Shadow Receiver

阴影是3D空间中非常重要的方面。 然而,阴影渲染是GPU密集的过程。 快速阴影接收器通过最小化阴影绘制区域使阴影渲染更快。 这是低端移动设备上阴影性能问题的真正解决方案。

2017-03-07

Build Report Tool 自述文件

您的游戏版本想试图减少小于 50 MB 吗?需要去看,你的资产正在吃占用的磁盘空间? 此工具提供了一个很好前端为Unity的生成信息。它显示包含在build 时的资产和多少存储空间。

2017-03-01

Unity资源热更新之AssetBundle

包含旧版本的AssetBundle(Unity5.0以前)与新版本的AssetBundle(Unity5.0以后)的操作,以及AssetBundle的批量命名及打包操作

2016-12-07

Unity_LZMA方式的压缩与解压

使用LZMA压缩与解压Unity的Assetbundle包

2016-11-30

Unity3D 自定义树组件(树形菜单)

这是一个完整的Unity树形菜单项目工程,菜单可以进行折叠,点击某个节点,可以显示出所点击菜单的信息。

2016-11-05

Unity框选效果

Unity框选场景中的对象,被选中的对象,边缘高亮显示

2016-11-01

Unity3D-XML与JSON导出还原场景

将Unity游戏场景中游戏对象的、旋转、缩放、平移与Prefab的名称导出在XML与JSON中。然后解析刚刚导出的XML或JSON,通过脚本把导出的游戏场景还原

2016-10-26

Unity3D-XML与JSON解析

融合了XML与JSON的合成与解析(包括创建、更新、添加、删除、显示等操作)

2016-10-26

Unity 粒子系统缩放示例

这是一个完整版的Unity粒子系统缩放Demo,代码、资源、场景俱全,可直接看演示效果

2016-10-26

3D游戏引擎 源码+演示

一个小型商业版的3D游戏引擎,具有平常游戏所具有的的元素,如:场景、视角变换、图像、声音等众多元素

2013-12-28

获取本机的IP地址和MAC地址

在VC++6.0和VS下能顺利编译,获得本机的IP地址和MAC地址,并输出,里面为详细的源码,望大家学习与研究

2013-12-24

Unpause.zip

Use for make Unity3D animations and particles not pause when you set the Time.timeScale to 0. It's useful when you want to play some pause menu animation or make some good effect while the game is paused by setting Time.timeScale 0.

2019-05-17

Unity Shader - Sprite Shader之简单抠图

在PhotoShop中我们经常会用到抠图操作,现在就用Shader实现一个简单的抠图效果。使用当前像素颜色与需要抠掉的颜色相减作比较,然后与一个指定的阈值比较以决定是否将其显示出来;

2018-05-30

Unity Shader-后处理:景深

通过两张图片,一张清晰的,一张经过高斯模糊的,然后根据图片中每个像素的深度值在两张图片之间差值,就可以达到景深的效果了。

2018-05-26

Unity Shader - 后处理:高斯模糊

高斯模糊(Gaussian Blur),又叫做高斯平滑。高斯模糊主要的功能是对图片进行加权平均的过程,与均值模糊中周围像素取平均值不同,高斯模糊进行的是一个加权平均操作,每个像素的颜色值都是由其本身和相邻像素的颜色值进行加权平均得到的,越靠近像素本身,权值越高,越偏离像素的,权值越低。

2018-05-25

Unity Shader-后处理:简单均值模糊

所谓模糊,也就是不清楚,清晰的图片,各个像素之间会有明显的过渡,而如果各个像素之间的差距不是很大,那么图像就会模糊了,极端一点的情况,当一张图片所有的像素之间颜色都差不多时,那么这张图片也就是一个纯色的图片了。

2018-05-23

Unity Shader - 后处理:简单的颜色调整(亮度,饱和度,对比度)

我们在做游戏的时候,虽然现在有了Unity等引擎,不用我们自己处理一些繁琐的东西,但是不管怎么样,最后显示在屏幕上的还是一些RGB的像素信息,了解这些基本的概念,肯定对我们做游戏有更大的帮助。

2018-05-23

Unity Shader - 隐身效果

根据模型空间的y坐标范围,我们在vertex阶段记录一下vertex坐标,传递给fragment阶段,在fragment阶段用这个值和一个设定好的阈值进行比较,不满足条件的像素点直接discard,逐渐调整阈值,就可以得到让模型按照某个方向消失的效果了。

2018-05-23

Unity Shader - 3D流光效果

3D流光需要将流光贴图的UV坐标和模型UV的XY坐标对应了起来,再将它进行UV动画移动起来,就实现了3D的流光效果。

2018-05-22

Unity Shader-死亡溶解效果

溶解(dissolve) 效果常见于游戏中的角色死亡、地图烧毁等效果。在这些效果中,消融往往从不同的区域开始,并向看似随机的方向扩张,最后整个物体都将消失不见。

2018-05-22

UnityShader 法线贴图(Normal Map)与视差贴图(Parallax Map)

主要研究一下怎样增强法线贴图的效果,法线贴图的进阶版-视差贴图(Parallax Map)。

2018-05-21

UnityShader 浮雕凹凸贴图BumpMap与法线贴图NormalMap的原理及其区别

凹凸映射和纹理映射非常相似。然而,纹理映射是把颜色加到多边形上,而凹凸映射是把粗糙信息加到多边形上。

2018-05-20

UnityShader 渲染队列,ZTest,ZWrite,Early-Z

Unity渲染引擎一般都会先对物体进行排序,再渲染。常用的方法是: (1)先渲染所有不透明物体,并开启它们的深度测试和深度写入。 (2)把半透明物体按它们距离摄像机的远近进行排序,然后按照从后往前的顺序渲染这些半透明物体,并开启它们的深度测试,但关闭深度写入。

2018-05-18

UnityShader 描边效果

描边效果是游戏里面非常常用的一种效果,一般是为了凸显游戏中的某个对象,会给对象增加一个描边效果。

2018-05-17

UnityShader 边缘光(静态、动态及遮罩)效果

思路:用视方向和法线方向点乘,模型越边缘的地方,它的法线和视方向越接近90度,点乘越接近0。那么用 1-减去上面点乘的结果,来作为颜色分量,来反映边缘颜色强弱。

2018-05-16

UnityShader 漫反射(兰伯特与半兰伯特光照模型-逐顶点和逐像素光照)

漫反射光照是用于对那些被物体表面随机散射到各个方向的辐射度进行建模的。在漫反射中,视角的位置是不重要的,因为反射是完全随机的,因此可以认为在任何反射方向上的分布都是一样的。但是,入射光线的角度很重要。

2018-05-15

UnityShader 序列帧动画效果

序列帧动画的主要的思想是设置显示UV纹理的大小,并逐帧修改图片的UV坐标。

2018-05-15

UnityShader 实现3D模型颜色渐变效果

使用Unity Shader使模型的颜色产生简单的两种颜色过渡的渐变效果。

2018-05-11

UnityShader 实现2D流光效果

很多游戏Logo中都可以看到流光效果,实现方案就是对带有光条的图片uv根据时间进行移动,然后和原图进行叠加实现。

2018-05-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除