![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity
青木z
加油!
展开
-
Unity中UGUI中的PSD导入工具的原理和作用
先说一下PSD导入工具的作用,比如在和美术同事合作开发一个背包UI业务系统时,美术做好效果图后,程序在UGUI中制作好界面,美术说这个图差了2像素,那个图位置不对差了1像素,另外一个图大小不对等等一系列零碎的小问题,程序每次去改都会浪费大量的时间和精力,而PSD导入工具作用就可以解决这块问题,把美术在PhotoShop制作好的界面效果图复刻到Unity中。实现项目中可能会有更复杂的情况,一般是根据项目的规则去改动工具。原创 2024-03-17 10:13:43 · 667 阅读 · 0 评论 -
Unity使用Addressable热更新
Addressable是Unity推出的打ab包方案。不需要手动写AB打包脚手架了,不需要关心依赖,这也简化了ab热更新的流程。Addressable打包需要先将资源放入group中,按group来打包,每个group对应一个ScriptableObject的配置文件。bundle的粒度:同一Group可选择一起打包,完全分开打包和按标签打包;注意:实际项目中会更复杂,根据项目设定可能会有一些差异。-> 下载Catalogs文件;->获取更新资源大小;原创 2024-03-10 23:04:11 · 587 阅读 · 0 评论 -
Unity中关于继承ScriptableObject的类
在游戏中我们会经常看到一些.asset的配置文件,而这些文件就是用一个自定义的类去继承ScriptableObject来生成的。比如当前有一些零散特效需要预加载,这个时候我们可以声明一个类去保存这些零散特效对象的信息,然后统一读取加载。右击Create创建asset就好了。然后在游戏中加载读取就好了。原创 2024-03-06 19:29:51 · 485 阅读 · 0 评论 -
Unity中UGUI在Mask剪裁粒子特效的实现
在Unity使用Mask是剪裁不了粒子特效的,之前有想过RenderTexture来实现,不过使用RenderTexture不适合用于很多个特效,因为RenderTexture依赖Camera的照射,如果在背包中每种道具都有不同的特效,那使用RenderTexture则需要不同特效都用一个Camera。解决办法在粒子特效的shader中添加剪裁的代码。先看下剪裁不了的显示。原创 2024-01-23 19:22:18 · 1092 阅读 · 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 · 1224 阅读 · 0 评论 -
游戏设计三大原则和常用设计模式
三大原则:单一职责原则游戏需要做的内容有很多,比如一个在Unity中开发一个塔防射击小游戏,其中将会有UI逻辑,游戏进度逻辑,消灭怪物逻辑,玩家逻辑等等。我们在设计软件的时候就是要讲他们的职责相互分离,当你能够想到一个类有多于一个职责时就可以考虑将其分离出来。封闭开放原则对于扩展是开放的,对于更改是封闭的。将不变的部分作为基类,在更改需求的时候选择增加扩展类而不是修改原有类。里式替换原则子类替换掉父类软件单位的功能不收到影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。抽象类原创 2020-07-28 01:16:29 · 1227 阅读 · 0 评论 -
Unity中的监听事件消息的写法
在项目中用事件消息有许多好处,比如解耦合,结构清晰,一条消息对应多个事件等等…事件类型用枚举来区分。没有参数:添加事件监听代码: public static void AddListener(EventType type,CallBack callback) { if (!m_EventControl.ContainsKey(type)) { m_EventControl.Add(type, null); }原创 2020-07-05 17:06:08 · 2137 阅读 · 0 评论 -
Unity用Scoket进行服务端与客户端的连接(中控功能)
最近项目中用到了中控的连接,说下功能,以Unity的主场景为服务端,另外一个场景为客户端,服务端与客户端的连接用Socket进行连接。实现客户端发送效果给服务端, 当然服务端也可以发送消息给客户端。Server(服务端):得到本机的IP: public string GetIP(ADDRESSFAM Addfam) { if (Addfam == ADDRESSFAM.IPv6 && !Socket.OSSupportsIPv6) {原创 2020-06-29 15:59:22 · 950 阅读 · 1 评论 -
Unity打包Android和配置Android SDK遇到的坑
SDK下载地址:https://developer.android.google.cn/studio1.开始安装完成弹出设置镜像 --------点Cancel 之后再安装。空工程设置:2.关于gradle文件报错:从这个网站下载,关闭Android Studio,然后替换C盘用户下的文件夹。...原创 2020-06-25 01:53:22 · 961 阅读 · 0 评论 -
Unity接入大量服务端数据的优化方法
前言在我们开发项目,有时会遇到要从服务端接入大量的数据,链接都是服务端处理出来的JSON数据,请求下来的数据放在字典中:由于要请求大量的数据,但是请求方法是一样的,而且多条数据刷新时间有可能会一样,所有数据用一个方法去请求是行不通的,会出现上一条数据没请求完,下一条数据就开始请求了,倒置数据错乱。错误请求方式:IEnumerator LoadData(string url,Dictionary<string, object> lampDic) { UnityWeb原创 2020-06-01 18:06:17 · 984 阅读 · 0 评论 -
Unity中多个对象池使用与管理
单例版本类:using System;using UnityEngine;using System.Collections;using System.Text; //单例模板public abstract class SingleTemplate<T> : MonoBehaviour where T:MonoBehaviour//T泛型继承单例模板的类最终继承哪,...原创 2020-04-23 19:35:18 · 931 阅读 · 0 评论