自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(220)
  • 资源 (2)
  • 收藏
  • 关注

原创 Unity3D asset bundle 格式简析

Unity3D 的 asset bundle 的格式并没有公开。但为了做更好的差异更新,我们还是希望了解其打包格式。这样可以制作专门的差异比较合并工具,会比直接做二进制差异比较效果好的多。因为可以把 asset bundle 内的数据拆分为独立单元,只对变更的单元做差异比较即可。网上能查到的资料并不是官方给出的,最为流行的是一个叫做 disunity 的开源工具。它是用 java 编写的,只有

2015-12-02 09:38:13 830

原创 Unity uGui RawImage 渲染小地图

制作类似 RPG 游戏时,可能会需要显示小地图。小地图的制作一种方式是用另一个摄像机来渲染到一张纹理上,实时显示到UI界面。以Unity 5.0 的 UI 系统为例:在地图正上方放置一个摄像机,设置其 Culling Mask,比如:Ground(地面)、MinimapSign(玩家怪物标识),创建一张 Render Texture,将 Target Texture 属性指向这

2015-11-27 09:30:04 1160

原创 总结使用Unity 3D优化游戏运行性能的经验

作者:Amir Fasshihi流畅的游戏玩法来自流畅的帧率,而我们即将推出的动作平台游戏《Shadow Blade》已经将在标准iPhone和iPad设备上实现每秒60帧视为一个重要目标。以下是我们在紧凑的优化过程中提升游戏运行性能,并实现目标帧率时需要考虑的事项。当基本游戏功能到位时,就要确保游戏运行表现能够达标。我们衡量游戏运行表现的一个基本工具是Unity内置分析器

2015-11-04 23:19:33 875

原创 【Unity3d】3d角色换装实现原理及步骤

1、角色模型制作  unity3d支持Skin动画  但是不支持Physique动画  会发现Physique动画在unity里严重变形    因此在模型的骨骼动画的制作上面  要用Skin    当然也可以做成Physique  然后用插件转换一下  3dsmax的插件PhyToSkin  3dsmax中转换之前  为了避免出错  先隐藏骨骼   然后对绑定了骨骼

2015-10-30 19:38:05 1384

原创 Strumpy Shader Editor入门教程

对于3D游戏来说,有很多绚丽的效果,都是靠shader(着色器)来实现的。不过很多朋友估计都不会编写shader,阿赵我自己也只是看了个入门,明白了它的原理,很多具体的效果都写不出来的。这次来介绍一个Unity3D的第三方shader编辑器:Strumpy。这个编辑器是完全可视化编辑,使用起来相对简单一点。先来看看我们这次需要做的例子:我们需要使用Strumpy,编辑出这样

2015-10-30 18:53:52 569

原创 再详细的介绍一下Unity5的AssetBundle

之前曾经写了一篇博客介绍Unity5的AssetBundle,结果似乎很受关注。不过似乎很多人看了之后都不懂,主要是因为不太明白AssetBundle是什么,它的依赖关系和结构是什么的,就直接想拿代码去用,而导致了很多人说看不懂啊,说什么有错误啊,诸如此类。我想了一下,还是应该从最基础的东西说起,不厌其烦的说,才会省去大家加我QQ问问题了,毕竟平时上班忙,看到一些人把我当翻译词典查,我肯定会态度不

2015-10-30 18:32:33 660

原创 Unity3D项目程序加密2——对dll进行混淆

之前一篇文章阿赵已经简单的介绍了怎样把自己写的代码打包成dll动态链接库,然后在Unity3D里面用。那么接下来的事情似乎就很简单了,我们在Unity3D里面写脚本,到最后完成时,把核心的代码剪切出去打包成dll文件再放回项目里面。这样似乎别人就不能直接修改你的代码了。事实真的是这样吗?这里假设我们在Unity3D里面写的代码抽象成这样一个Test类,里面包含了公开和私有的变量,有自带

2015-10-30 18:15:01 526

原创 基于Unity行为树设计与实现的尝试

查阅了一些行为树资料,目前最主要是参考了这篇文章,看完后感觉行为树实乃强大,绝对是替代状态机的不二之选。但从理论看起来很简单的行为树,真正着手起来却发现很多细节无从下手。总结起来,就是:1、行为树只是单纯的一棵决策树,还是决策+控制树。为了防止不必要的麻烦,我目前设计成单纯的决策树。2、什么时候执行行为树的问题,也就是行为树的Tick问题,是在条件变化的时候执行

2015-10-26 19:20:46 1462

原创 使用行为树(Behavior Tree)实现游戏AI

谈到游戏AI,很明显智能体拥有的知识条目越多,便显得更智能,但维护庞大数量的知识条目是个噩梦:使用有限状态机(FSM),分层有限状态机(HFSM),决策树(Decision Tree)来实现游戏AI总有那么些不顺意。  试试Next-Gen AI的行为树(Behavior Tree)吧。  虽说Next-Gen AI,但距其原型提出已有约10年时间,而微软Halo系列估

2015-10-26 16:42:46 952

原创 C#调用C++ dll时CallingConvention调用约定详解

C#调用C++ dll时,我们会在引入方法上写CallingConvention属性,这是指定调用在非托管代码中实现的方法所需的调用约定。c++   输出的函数调用约定是多种的 1、Cdecl   调用方清理堆栈。 这使您能够调用具有 varargs 的函数(如 Printf),使之可用于接受可变数目的参数的方法。2、FastCall   不支持此调用约定。     

2015-10-24 10:12:31 7251 2

原创 C#线程系列(1):BeginInvoke和EndInvoke方法

一、线程概述在操作系统中一个进程至少要包含一个线程,然后,在某些时候需要在同一个进程中同时执行多项任务,或是为了提供程序的性能,将要执行的任务分解成多个子任务执行。这就需要在同一个进程中开启多个线程。我们使用C#编写一个应用程序(控制台或桌面程序都可以),然后运行这个程序,并打开windows任务管理器,这时我们就会看到这个应用程序中所含有的线程数,如下图所示。如果任务

2015-10-22 18:05:24 611

原创 浅析StackTrace

我们在学习函数调用时,都知道每个函数都拥有自己的栈空间。一个函数被调用时,就创建一个新的栈空间。那么通过函数的嵌套调用最后就形成了一个函数调用堆栈。在c#中,使用StackTrace记录这个堆栈。你可以在程序运行过程中使用StackTrace得到当前堆栈的信息。class Program    {        static void Main(string[] args)

2015-10-22 16:49:32 2833

原创 AssemblyInfo.cs文件的作用

AssemblyInfo.cs主要用来设定生成的有关程序集的常规信息dll文件的一些参数请看以下具体说明://备注:  [assembly:AssemblyDescription("用最强的抢劫类写成!")]//产品名称[assembly:AssemblyProduct("无为搜索")]//公司[assembly:AssemblyCompany("无为网络")]//

2015-10-16 18:46:40 1083

转载 全面解析Unity3D自动生成的脚本工程文件

我们在Unity3D开发的时候,经常会看到它会产生不少固定命名工程文件,诸如:Assembly-CSharp-vs.csproj Assembly-CSharp-firstpass-vs.csprojAssembly-CSharp-Editor-vs.csprojAssembly-CSharp-Editor-firstpass-vs.csproj

2015-10-16 17:54:21 572

原创 ubuntu下允许root用户ssh远程登录

SSH服务器,可以通过SSH协议来访问远程服务器,代替telnet和ftp。但是ubuntu默认是不启用root用户也不允许root远程登录的。所以需要先启用root用户 启用root用户:sudo passwd root      //修改密码后就启用了。 安装OpenSSH server:1. 使用apt命令安装openssh server$ s

2015-10-16 08:01:53 458

原创 Unity DF-GUI 中文输入以及自动换行

在使用Daikon Forge GUI过程中,发现dfTextbox编辑框无法输入中文,dfLabel和dfRichTextLabel文本控件中文无法自动换行。对源代码进行了更改,以便支持中文。不同版本可能更改的地方会不同,这边的版本为Daikon Forge GUI 1.0.15,Unity 4.3.1。dfTextbox中文输入当前无法输入中文,是因为没有开启I

2015-10-15 10:45:58 1711

原创 unity3d 关于 NGUI的UIDrawCall 和 U3D的drawcall(原)

关于遮挡关系1.NGUI2.6版本不同的panel用z轴调遮挡关系,一个panel下相同的atlas用depth调遮挡关系,不同的atlas用z调遮挡关系2.NGUI3.5版本不管panel是否相同只用depth调遮挡关系,但如果renderQ使用startat则按renderQ计算遮挡关系 关于UIDrawCall1.不管是NGUI的2.6版本还是3.5版

2015-10-15 09:45:36 903

原创 Unity3D教程宝典之 FX Maker

FX Maker是Unity3d一款非常流行的效果制作插件。不但有超过300种效果预制体, 还可以自己制作效果。包含Mesh Effect 和Particle Effect。优点:资源库大,可以将消耗资源非常多的粒子效果转换为帧动画效果。当然也可以直接用不转帧动画的效果,这种效果是画面最好的,但是对显卡开销大。帧动画显卡开销小,占内存大,适合移动平台。Fx Maker还能自动保存。

2015-10-15 08:17:08 2017

原创 Unity3D Resources TextAsset 文本

一些小型数据,可以用txt文本作为媒介,进行获取、传输、修改、存储;比如:User1.2.3.txt,放入 Resources/Data 文件下;一,Unity3d Resources.Load 加载获取数据。   TextAsset TXTFile = (TextAsset)Resources.Load("Data/board" + boardN.ToString() +

2015-10-12 14:54:42 921

原创 Unity3D 物体移动方式总结

1. 简介    在unity3d中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position。2. 通过Transform组件移动物体    Transform 组件用于描述物体在空间中的状态,它包括 位置(position), 旋转(rotation)和 缩放(scale)。 其实所有的移动都会导致position的改变,这里所说的通过Tra

2015-10-10 18:10:44 835

原创 Activator.CreateInstance 方法

Activator.CreateInstance 方法 (Type) 使用与指定参数匹配程度最高的构造函数来创建指定类型的实例。 命名空间:System程序集:mscorlib(在 mscorlib.dll 中) C# public static Object CreateInstance (Type type)Activator.CreateIns

2015-10-08 09:25:14 3443

原创 System.Type类

System.Type类      System.Type类定义了很多成员,可以用来检查某个类型的元数据,它们返回的类型大多位于System.Reflection命名空间中。举例来说,Type.GetMethods()返回一个MethodInfo类型的数组,Type.GetFields返回一个FieldInfo类型的数组等。System.Type提供的完整的成员组是很容易扩展的。使

2015-10-08 09:03:56 1208

转载 Unity3D开发(七):NGUI之UICamera控制触摸,鼠标事件

1. UICamera 功能介绍主要包括UI事件的监听,分发,覆盖范围为此Camera渲染的所有GameObject。事件源包括:鼠标,触摸,键盘,手柄。事件包括:悬停,按下/抬起,选中/取消选中,点击,双击,拖拽,释放,文本输入,Tips显示,滚轮滑动,键盘输入。 2. UICamera 实现流程(1)属性 Event Type:包

2015-09-25 17:27:10 1194

转载 Unity3D开发(一):NGUI之UIRoot屏幕分辨率自适应

NGUI在Unity3D游戏开发中非常常用,而NGUI对于每一个UI场景,都是以一个UIRoot为UI游戏对象树的根的,那么这个UIRoot是起什么作用的呢?先简单看一下UIRoot中的基本属性UIRoot游戏对象的属性只有4个,分别是缩放规则,手动高度,最小高度和最大高度而正是这4个属性,将影响整个UI场景中整体的缩放比例,当设置好这4个属性之后,UIRoot游戏

2015-09-25 16:50:44 470

原创 Unity3D Member Data和Inspector, Serialize的关系

Unity3D 中提供了非常方便的功能可以帮助用户将Member Data在Inspector中显示,并且定义Serialize关系。简单的说,在没有自定义Inspector的情况下所有显示在Inspector 中的属性都同时具有Serialize功能。换句话说,就是你在Inspector看到什么,保存游戏的时候,这些值就会被保存成二进制文件。可被Serialize的变量的定义方法

2015-09-25 12:10:54 418

原创 c#Serializable

参考:C# Serializable System.SerializableAttribute串行化是指存储和获取磁盘文件、内存或其他地方中的对象。在串行化时,所有的实例数据都保存到存储介质上,在取消串行化时,对象会被还原,且不能与其原实例区别开来。只需给类添加Serializable属性,就可以实现串行化实例的成员。并行化是串行化的逆过程,数据从存储介质中读取出来

2015-09-25 12:03:15 475

原创 component之message

主要作用,跨脚本、语言实现功能。Message相关有3条指令:SendMessage ("函数名",参数,SendMessageOptions) //GameObject自身的ScriptBroadcastMessage ("函数名",参数,SendMessageOptions)  //自身和子Object的ScriptSendMessageUpwards ("函数名",参数,

2015-09-25 11:57:19 364

转载 【Unity教程】Unity中的C#内存管理

本系列文章主要讲解C#针对unity的内存管理,共有三部分,各部分内容如下:•  第一篇文章讨论.NET和Mono垃圾回收的内存管理基本的原理。也涉及一些常见的内存泄漏来源。•  第二篇文章着重于使用工具发现内存泄漏。Unity Profiler在此方面是一个强大的工具,但它代价太高(unity5中免费)。因此我将讨论.NET反汇编和通用中间语言(CIL),以此展示如何使用免费

2015-09-15 22:28:01 2126

转载 关于C#中的弱引用

一:什么是弱引用      了解弱引用之前,先了解一下什么是强引用  例如 : Object obj=new Object();     就是一个强引用,内存分配一份空间给用以存储Object数据,这块内存有一个首地址,也就是obj所保存的数据,内存分配的空间中不仅仅保存着Object对象信息,还保存着自己(Object本身)被引用的次数。  当一个对象被强引用的形式创建的时候,本身被

2015-07-13 11:43:55 463

转载 untiy3d 热更新 脚本 动态更新 c#lite 图形学

以下文章转载自图形学大神李总老师的博客.C#Lite是李总自己做的一个开源项目,旨在解决因u3d在ios平台不能动态更新以及lua脚本在u3d上效率低下的问题.作为4年前就给李总当小弟,被李总狂虐的我一定要帮他做做宣传.有需要的朋友可以去http://crazylights.cnblogs.com/观看持续更新的帖子.貌似最近他开始讲些图形学的入门捷径.有兴趣并且不是小白的

2015-07-10 18:10:57 870

转载 Unity3d热更新全书-加载(一)从AssetBundle说起

Unity3D动态下载资源,有没有解?有,AssetBundle就是通用解,任何一本书都会花大幅篇章来介绍AssetBundle.我们也来说说AssetBundle我们试全面的分析一下Unity3D提供的资源加载机制1.Resources//内嵌资源,使用方法Resources.Load,可以加载任意种类的资源,不能动态修改,卒。2.StreamingAssets//随

2015-07-10 18:10:08 522

转载 MonoBehaviour生命周期讲解

最先执行的方法是Awake,这是生命周期的开始,用于进行激活时的初始化代码,一般可以在这个地方将当前脚本禁用:this.enable=false,如果这样做了,则会直接跳转到OnDisable方法执行一次,然后其它的任何方法,都将不再被执行。 如果当前脚本处于可用状态,则正常的执行顺序是继续向下执行OnEnable,当然我们可以在另外一个脚本中实现这个脚本组件的启动:this.enab=tru

2015-07-10 15:51:26 754

转载 Unity3d之MonoBehaviour的可重写函数整理

最近在学习Unity3d的知识.虽然有很多资料都有记录了,可是我为了以后自己复习的时候方便就记录下来吧!下面的这些函数在Unity3d程序开发中具有很重要的作用.Update 当MonoBehaviour启用时,其Update在每一帧被调用。LateUpdate当Behaviour启用时,其LateUpdate在每一帧被调用。FixedUpdate 当MonoBehavio

2015-07-10 13:06:38 1006

转载 NGUI之UICamera控制触摸,鼠标事件

1. UICamera 功能介绍主要包括UI事件的监听,分发,覆盖范围为此Camera渲染的所有GameObject。事件源包括:鼠标,触摸,键盘,手柄。事件包括:悬停,按下/抬起,选中/取消选中,点击,双击,拖拽,释放,文本输入,Tips显示,滚轮滑动,键盘输入。 2. UICamera 实现流程(1)属性 Event Type:包

2015-07-08 12:57:58 652

转载 Directional Shadow Details 平行光阴影细节

This page explains shadows from Directional lights in detail.此页面详细介绍了平行光阴影。Directional lights are mostly used as a key light - sunlight or moonlight - in an outdoor game. Viewing distances can

2015-07-08 11:19:55 514

转载 有关Unity3D的OnRenderImage()和Blit()的一些问题

大家好!本人最近在使用Unity3D做master阶段的图形学实验平台。在实验过程中会频繁的对多个不同的RenderTexture(以下简称RT)进行一些运算,因此自然会用到Blit这个函数。在实验中,我们遇到了一些非常神奇的问题,希望能跟大家一起讨论一下。Blit(src,dest,mat,pass)函数的作用,按照Unity官方API的说法是将src这个RT用mat这个材质中的某个pass

2015-07-07 15:13:36 20478 5

转载 四元数与欧拉角之间的转换

在3D图形学中,最常用的旋转表示方法便是四元数和欧拉角,比起矩阵来具有节省存储空间和方便插值的优点。本文主要归纳了两种表达方式的转换,计算公式采用3D笛卡尔坐标系: 图1 3D Cartesian coordinate System (from wikipedia)     定义分别为绕Z轴、Y轴、X轴的旋转角度,如果用Tait-Bryan angle表示,分别为Yaw、P

2015-07-07 14:31:07 3063

转载 Unity3D调用自己封装的dll

之前总感觉会封装dll组件的都是大牛级别的程序员做的事情,然后供给菜鸟级别的调用。感觉为了保护自己的源码不会被他人知道,然后就封装一个dll供人家调用,那样就觉得很牛, 今天我也尝试摸索了一下,感觉也就那么回事,但只是简单的测试而已,其实会写封装的,封装的好的还是很牛的,哈哈,那让我们也来假装“牛”一次吧!首先要申明的是,unity3d支持C#语言,但只有pro版本才支持.net2.0,其

2015-07-07 11:26:53 858

转载 Unity3D自带例子AngryBots的分析

研究一下Unity3d自带的AngryBots项目,了解基本的游戏运行机制:  1. 人物的动作控制逻辑 ***Player对象*** [外形] Player对象里有一个对象具有Skinned Mesh Renderer组件,该组件使用的Mesh名为main_player_lorez。 类似的还有表达武器的,名为main_weapon001的GameObject。  [操作]: (Inpu

2015-07-06 18:11:18 1111

转载 Gizmos画圆(原创)

Gizmos是场景视图里的一个可视化调试工具。在做项目过程中,我们经常会用到它,例如:绘制一条射线等。Unity3D 4.2版本截至,目前只提供了绘制射线,线段,网格球体,实体球体,网格立方体,实体立方体,图标,GUI纹理,以及摄像机线框。如果需要绘制一个圆环还需要自己写代码。using UnityEngine;using System;public class

2015-07-06 16:05:37 402

URP Debug Views 1.0.4.zip

Do you wish you had debug views in LWRP / URP? Do you wish it was easy to add custom debug views? That it was accessible in game view and in builds? URP Debug Views - A unique plugin that adds debug views support for LWRP / URP and more! TLDR URP Debug Views adds must have features for anyone that uses LWRP / URP: - most of the debug views from the built-in renderer (including Shaded Wireframe!) - works in scene view, game view and in builds - add your own debug view with a single shader Available debug views - Shaded Wireframe - World normals - World tangents - Shadow cascades - Overdraw - Vertex color R - Vertex color G - Vertex color B - Vertex color RGB - Vertex color A - UV0 Checker - UV1 Checker Available everywhere Debug views work in scene view, game view but also in builds. It has been tested on various PCs, Mac, Android and VR. Custom Adding custom debug views is very easy, a single shader is enough! You can then plug the newly created debug view in an editor menu, shortcuts or a custom in-game menu. Time saver Being able to check problems and iterate on them quickly is very important, especially if you are an indie game developper. "Why is this vertex color not working? Is the problem coming from the mesh, Unity or the shader?" "What is this visual bug, is it coming from the geometry or the textures?" Any of theses questions and many more can be answered in one click by using the correct view. Without any debug view, it can take 10 minutes, an hour, or more. Less time fixing problems means more time working on your game. Your time is important, value it! Full source code included! Support I'm dedicated to make this asset a must-have for LWRP / URP. I answer to email and do my best to fix bugs and implement feature request. Please don't hesitate to contact me for feedback, ideas or bug report at ph.graphics.unity@gmail.com You can also come and chat on Discord at https://discord.gg/ksURBah If you are not convinced yet, you can look at reviews for

2021-07-23

房燕良-虚幻4渲染系统架构解析

自我介绍 • 3D引擎渲染系统概述 • 虚幻4渲染系统架构 – 游戏线程&渲染线程 – 场景管理与渲染数据管理 – Deferred Shading Scene Renderer • 虚幻4的VR渲染 – 以Google VR HMD插件为例

2019-02-22

空空如也

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

TA关注的人

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