跳至主要内容

博文

[外文翻译] 在unity3d上建立运行重新着色和衰退的粒子系统

粒子系统是极好的系统,适应于各种各样的特效在游戏中,包括火焰,爆炸,烟雾,水,灯光,行星模拟,还有很多, unity 伴随着一个建立在粒子系统上的 library 可以用来实施这些特效在你的 或者 3d 游戏上,而且在 unity 上实施这个粒子系统有着额外的灵活性和允许你创造更神奇的特效,有时候你有些情况需要要求一些专用化,这些是不可以被建立的。 此外,最近我尝试实现实现一个粒子效果让粒子分散开来像爆炸一样,然后停留在一个地方,最后缓慢的淡出不断循环。当粒子不断发散随着它们的生命周期可以熟练的用过 build-in editor ,等待它们的是终止。 这里可以看到一个粒子系统是我创建的,它使用 build-in particle editor 在 unity 中:     暂停粒子系统 根据你们所看到的,它开始于一个随机放射方向的粒子系统,然后停止,,这个暂停特效比直着向前扩展要好,而且可以实现通过贴上一个代码在粒子系统中让它暂停然后继续   public class ParticleScript : MonoBehaviour {     public float timeToPause = 2.0f;         private ParticleSystem system;     private float time;         void Awake() {         system = GetComponent ();     }         void Update() {         time += Time.deltaTime;             ...
最新博文

Unity进阶技巧 - XML存档与加密

不管开发什么游戏,游戏存档是个必不可少的功能,你可能需要保存玩家的一些信息,比如身上穿戴的装备,玩家角色所处的场景等各种信息,对于存档功能 (数据持久化),Unity提供了原生技术Playerprefs,它的优点是理解和使用起来十分简单,缺点是对于大型数据存储时会力不从心,所以本文会 介绍如何使用XML来实现游戏存档和存档加密的功能。 编程环境 Unity 5.2.2 OS X EI Capitan 10.11.6 你将学到什么? 如何使用XML对数据进行序列化和反序列化操作。 如何对数据进行加密和解密操作。 不同平台下文件存放的具体路径和规则。 整体思路解析 数据存储和加密的主要逻辑思路: 使用 XmlSerializer 类对需要保存的数据类进行序列化操作,得到一串字符串。 将得到的字符串使用 RijndaeManaged 类和 ICrytoTransform 类进行加密操作,获得加密之后的字符串。 根据平台类型,确定文件保存的路径。 使用StreamWriter类将字符串保存到文件中。 数据加载和解密的主要逻辑思路: 根据存档文件的路径,使用StreamReader类读取文件中的内容(一串加密过的字符串)。 使用 RijndaeManaged 类和 ICrytoTransform 类对读取的文件内容进行解密操作,获得一串解密后的字符串。 使用 XmlSerializer 类对解密后的字符串进行反序列化操作,获得具体的游戏数据,并使用数据对游戏中的数据进行转换操作。 一、准备工作 在实现具体保存操作前,我们需要先实现我们要保存的游戏数据,本文使用一个简化的数据,假设我们保存的数据是MyPlayer类,里面记录着以下信息: 玩家的名字 玩家的等级 玩家的武器(包括物品ID,物品名字信息) 玩家的衣服(包括物品ID,物品名字信息) 下面我们就来具体实现这些数据,首先我们新建一个Unity工程,工程名字大家可以自定义,然后我们新建一个C#文件,命名为 Item ,打开item文件,并进行如下编辑: Item代码 在Item类中,我们定义了两个公共成员,_itemID和_name,分别代表物品的ID和名字。 然后我们在构造函数里面初始化了物品ID和名称。 最后我们又创建了一个构...

Unity3D研究院之提取游戏资源的三个工具支持Unity5(八十四)

这两天无意间又发现了两个提取Unity游戏资源的工具,这会儿刚好有时间我就码点字总结一下。 一、disunity 因为之前写过了所以这里就不介绍了 。Unity3D研究院之mac上从.ipa中提取unity3D游戏资源(六十六)  http://www.xuanyusong.com/archives/2584 二、UnityAssetsExplorer 下载地址: http://www.nexusmods.com/pillarsofeternity/mods/27/?tab=2&navtag=http%3A%2F%2Fwww.nexusmods.com%2Fpillarsofeternity%2Fajax%2Fmodfiles%2F%3Fid%3D27&pUp=1 百度云下载地址: http://pan.baidu.com/s/1AwTrg 如果你想解Unity5的游戏包,请使用 UnityAssetsExplorer 1.5 以上版本。 百度云下载地址: http://pan.baidu.com/s/1sjkjSJz 如下图所示,OpenAssets-File 选一个 .asset 或者一个.assetbundle 然后Extract All即可导出,感觉只是在disunity上增加了一个可视化的功能。 三、UnityStudio 其实我觉得这个工具非常牛逼、前面两个都只能把资源解开,预览图片资源得用别的工具才能打开。然而UnityStudio可以直接在自己的软件上查 看图片、shader、文本、还能直接播放音频、甚至还能看场景Hierarchy视图的树状结构。强烈推荐用UnityStudio啊。 下载地址: http://forum.xentax.com/viewtopic.php?f=10&t=11807 百度云下载地址: http://pan.baidu.com/s/1hqjMnOg UnityStudio最新版本下载 支持unity5.x   https://github.com/Perfare/UnityStudio/releases 直接预览图片 直接播放音频 查看场景树状结构 查看Shader代码。 ...

jnyy

Dream Fall

【厚积薄发】扒一扒Profiler中这几个“占坑鬼”

WaitForTargetFPS、Gfx.WaitForPresent 和 Graphics.PresentAndSync是我们经常会被问到的参数。想必正在读此文的你也经常在Profiler中遇到过这几项CPU开销过大的情况。对此,我们今天就来好好地聊一聊这几个参数的具体含义和触发规则。

Assetbundle打包(一)

一、简介 Unity的Assetbundle是Unity Pro提供的功能。 理解:Asset 资源,资产;Bundle :包,一批,捆;字面上的意思,就是把资源打包。 在项目中怎么使用Assetbunlde呢? 答:我们的项目分为两个工程:Art和Client。其中Art工程,把Prefab打包成AssetBundle及拼接美术资源,Client工程读取AssetBundle及游戏逻辑; 二、Art 下面这张是Art工程下的自定义编辑器功能,菜单栏 Game/资源打包/打包 XXX 下是是Project截图,可以看到在Product目录下,有按规则命名的文件夹。菜单栏的功能就是打包这些目录下的Prefab,例如: 执行 Game/资源打包/打包Actors ,就是把 项目工程路径/Assets/Product/Actor/* 打包成Assetbundle 当打包完之后,所有的AssetBundle都存放在Product\AssetBundles\[Android][IOS[Win32] ( 注:在打包时需注意Assetbundle有运行平台之分 ) 三、Client Client工程主要的是Code,负责游戏的逻辑。 下面是Client的Project截图( 注:StreamingAssets下的是当前运行平台AssetBundle快捷方式 ) 四、资源更新       由于移动平台上不能更新脚本,也就Prefab上绑定的脚本是不会被执行的。但是如果本地工程有同样的脚本,那么Unity会自动将这个脚本绑定在下载的Prefab上,并且他们执行的非常好。 如果本地工程中没有Prefab上的脚本,那么这个脚本是永远不会执行的。       比如:Box1.Prefab和Coin1.Prefab同样引用CBonesObject.cs,但是某些Public的变量值不一样,打包Assetbundle也是没有问题的,一样可以识别的很好。 Art工程里Prefab上绑定了脚本CBonesObject.cs   在Client工程同样有CBonesObject.cs,CBonesManager....