Unity3d
文章平均质量分 56
青木z
加油!
展开
-
Unity使用Addressable热更新
Addressable是Unity推出的打ab包方案。不需要手动写AB打包脚手架了,不需要关心依赖,这也简化了ab热更新的流程。Addressable打包需要先将资源放入group中,按group来打包,每个group对应一个ScriptableObject的配置文件。bundle的粒度:同一Group可选择一起打包,完全分开打包和按标签打包;注意:实际项目中会更复杂,根据项目设定可能会有一些差异。-> 下载Catalogs文件;->获取更新资源大小;原创 2024-03-10 23:04:11 · 773 阅读 · 0 评论 -
Unity中关于继承ScriptableObject的类
在游戏中我们会经常看到一些.asset的配置文件,而这些文件就是用一个自定义的类去继承ScriptableObject来生成的。比如当前有一些零散特效需要预加载,这个时候我们可以声明一个类去保存这些零散特效对象的信息,然后统一读取加载。右击Create创建asset就好了。然后在游戏中加载读取就好了。原创 2024-03-06 19:29:51 · 536 阅读 · 0 评论 -
Unity中UGUI在Mask剪裁粒子特效的实现
在Unity使用Mask是剪裁不了粒子特效的,之前有想过RenderTexture来实现,不过使用RenderTexture不适合用于很多个特效,因为RenderTexture依赖Camera的照射,如果在背包中每种道具都有不同的特效,那使用RenderTexture则需要不同特效都用一个Camera。解决办法在粒子特效的shader中添加剪裁的代码。先看下剪裁不了的显示。原创 2024-01-23 19:22:18 · 1250 阅读 · 1 评论 -
Unity中使用FSM状态机处理AI敌人追击玩家的功能
实现的功能:AI在固定的路径上巡逻,当玩家靠近AI的视野范围时,AI会追击玩家。当玩家跑出AI的视野范围时,AI则会放弃追击继续回到原来的地方进行巡逻。参考资料:http://wiki.unity3d.com/index.php/Finite_State_Machine.效果:FSM基类:using System.Collections;using System.Collections.Generic;using UnityEngine;//状态转化的条件枚举public enum Tra原创 2020-07-28 10:38:24 · 1268 阅读 · 0 评论 -
游戏设计三大原则和常用设计模式
三大原则:单一职责原则游戏需要做的内容有很多,比如一个在Unity中开发一个塔防射击小游戏,其中将会有UI逻辑,游戏进度逻辑,消灭怪物逻辑,玩家逻辑等等。我们在设计软件的时候就是要讲他们的职责相互分离,当你能够想到一个类有多于一个职责时就可以考虑将其分离出来。封闭开放原则对于扩展是开放的,对于更改是封闭的。将不变的部分作为基类,在更改需求的时候选择增加扩展类而不是修改原有类。里式替换原则子类替换掉父类软件单位的功能不收到影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。抽象类原创 2020-07-28 01:16:29 · 1325 阅读 · 0 评论 -
Unity中大场景的优化技巧
最近在做项目的时候,可能美术模型不标准,加上只关心好看,不关心性能,因此到最后整个场景运行特别费劲,特别卡。而在没做任何优化处理的情况下,场景中的Batches已经达到了恐怖的地步。1.首先想到的是对场景进行批处理,批处理分为动态批处理和静态批处理,不了解批处理的可以看这个文章: 点击这里.做完批处理后,Batches的数量直接降到了4901个2.场景中有很多相同的物体,比如大量的树,草,山等…用GPU Instancing去处理。做完GPU Instancing处理的Batches的数量是38原创 2020-07-12 14:40:57 · 7358 阅读 · 0 评论 -
Unity中抗锯齿设置
1.设置Camera2.开启抗锯齿:3.设置PlayerSetting:.如果上面的还不行:使用免费插件:原创 2020-07-02 10:28:29 · 5744 阅读 · 0 评论 -
Unity中的三种资源加载和卸载
前言内容转载自: https://www.cnblogs.com/zhoujiangyue/articles/7066070.html.Unity中三种资源加载方式:1.静态引用。具体操作:创建public变量,把文件挂到物体上,在Inspector里把相应资源给public变量,用的时候instantiate或者直接用。2.Resources.Load。加载Resources文件夹下的资源,加载后instantiate.3.AssetBundle.Load。加载打包后的资源。前两种资源加载方式转载 2020-05-24 16:20:54 · 2629 阅读 · 0 评论 -
Unity内存优化-------GC优化
**Unity内存优化---------------GC优化**介绍:在游戏运行的时候,数据主要存储在内存中,当游戏的数据在不需要的时候,存储当前数据的内存就可以被回收以再次使用。内存垃圾是指当前废弃数据所占用的内存,垃圾回收(GC)是指将废弃的内存重新回收再次使用的过程。Unity中将垃圾回收当作内存管理的一部分,如果游戏中废弃数据占用内存较大,则游戏的性能会受到极大影响,此时垃圾回收会成为游戏性能的一大障碍点。 前言感谢博客主提供思路,内容修...转载 2020-05-23 10:20:43 · 511 阅读 · 0 评论 -
Unity中UGUI轮播Image
思想:把一组图片放到Scroll View下,把超出屏幕的Image塞到最后,然后继续续播放。找的Gif制作软件有水印,将就着看…看下去掉mask后的效果:废话不多说,放代码:public abstract class PictureRotationUI<T> : MonoBehaviour where T:MonoBehaviour{ private Transform content1; private Transform startPos; priva原创 2020-05-21 14:35:23 · 1004 阅读 · 0 评论 -
利用XLua写前端逻辑
思路:新建一个通用的LuaCustomCommon类挂在需要用lua实现逻辑的prefab上。通过这个组件关联名为Panel的lua脚本,生成对应的LuaTable,通过这个组件为lua赋值对应prefab的属性,并在Start(),Update()等生命周期方法中通过LuaTable.Get(“MethodName”);调用lua中对应的方法。在lua中使用transform:Find(“name”)来关联prefab中的组件,通过这个LuaCustomCommon类就可以把前端的逻辑放在Lua脚本中。原创 2020-05-17 10:39:31 · 606 阅读 · 0 评论 -
Xlua的基础案例学习
xlua的官网:https://github.com/Tencent/xLua.xlua的说明:http://gad.qq.com/article/detail/42303.自定义加载Lua文件:public byte[] Loader(ref string filePath) { string path = Application.streamingAssetsPa...原创 2020-04-07 17:21:52 · 338 阅读 · 0 评论 -
Unity中UGUI打包图集后sprite模糊不清解决办法
在Unity5.x之后官网tui原创 2019-12-21 15:55:53 · 2548 阅读 · 1 评论