
Unity
文章平均质量分 68
Real_JumpChen
这个作者很懒,什么都没留下…
展开
-
AssetDatabase的方法总结
AssetDatabase的方法总结1、AssetDatabase.FindAssetspublic static string[] FindAssets(string filter);public static string[] FindAssets(string filter, string[] searchInFolders);filter该筛选器字符串可以包含:名称、资产标签和类型(类名称)的搜索数据searchInFolders指定一个或多个文件夹将限制搜索到这些文...转载 2020-09-06 11:31:17 · 3190 阅读 · 1 评论 -
NGUI的UIRoot、UICamera、UIPanel、UIRect、UIWidget、UITexture、UISprite、UILabel、Scroll View等
用NGUI也有几个月了,但一直没有系统性地学习过NGUI,今天来了解下~UIRoot:https://blog.youkuaiyun.com/kakashi8841/article/details/20480717UICamera:https://blog.youkuaiyun.com/kakashi8841/article/details/20548429UIPanel:https://blog.youkuaiyun.com...原创 2019-10-24 19:04:37 · 759 阅读 · 0 评论 -
C#脚本自动添加头部注释 Unity+VS
#region HeadComments// ********************************************************************// Copyright (C) #YEAR# #DEVELOPERS#// 作 者:#AUTHOR#// 文件路径:#FILEPATH#// 创建日期:#CREATIONDATE#// 功...原创 2018-07-16 11:34:39 · 1069 阅读 · 0 评论 -
Unity里的静态批处理和动态批处理
内容会持续更新,有错误的地方欢迎指正,谢谢!前言Unity在运行时可以将一些物体进行合并,从而用一个绘制调用来渲染他们。这一操作,我们称之为“批处理”,能得到越好的渲染性能。Unity中内建的批处理机制所达到的效果要明显强于使用几何建模工具的批处理效果,因为,Unity引擎的批处理操作是在物体的可视裁剪操作之后进行的,处理的几何信息少很多。材质只有拥有相同材质的物体才可...原创 2018-04-13 23:38:27 · 11161 阅读 · 4 评论 -
游戏中常用的设计模式
内容会持续更新,有错误的地方欢迎指正,谢谢!设计模式存在的意义:大多数是为了保证“低耦合高内聚”1.单例模式一个类只能有一个实例,单例非常重要经常用,比如游戏页面管理,现在我要关闭某个页面,页面上的很多子窗口也需要一起关闭。单例模式一般用于控制类脚本,也就是xxxController、xxxManager等。//C#代码public class Singleton { //关键点0:原创 2018-04-04 13:52:48 · 4129 阅读 · 0 评论 -
游戏开发中的帧同步
内容会持续更新,有错误的地方欢迎指正,谢谢!游戏中的帧同步是一种客户端与服务器的同步方式,是为了实现高实时性,所有玩家的指令一定是要及时地同步到所有玩家的终端上的,而且大家收到的信息一定要是一致的,不然没法玩。有两个概念:实时性和同步性1.实时性: 网络存在延迟,客户端发出指令到服务器需要时间,服务器发送指令到其他客户端也需要时间,这个延迟对于玩家来说是越小越好。提高同步消息的频率可以降低这个延迟,原创 2018-04-03 15:28:02 · 1378 阅读 · 0 评论 -
继承自MonoBehaviour的类如何实现单例
泛型单例类:public class Singleton<T> : MonoBehaviour where T : MonoBehaviour{ private static T mInstance; public static T GetInstance() { if (null == mInstance) { ...原创 2019-07-20 20:29:24 · 2238 阅读 · 0 评论 -
Unity中的SendMessage使用方法
Unity提供的消息推送机制可以非常方便我们的脚本开发,它实现的是一种伪监听者模式,本质上利用的是反射机制。举例如下:// 脚本一:发送消息public class SendMessage : MonoBehaviour{ private MonoBehaviour mb; // 通过this来赋值 public MonoBehaviour mb2; // 通过Unity的...原创 2019-07-22 22:25:40 · 3441 阅读 · 0 评论 -
Unity里图片未压缩Not yet compressed的解决方法
内容会持续更新,有错误的地方欢迎指正,谢谢!原创 2018-11-15 10:09:03 · 2689 阅读 · 0 评论 -
Unity自动生成的.meta文件是什么
内容会持续更新,有错误的地方欢迎指正,谢谢!meta文件从石头里蹦出来的?Unity中每个资源文件都会自动生成一个对应的meta文件。meta文件的作用1.是用于辅助管理Unity资源文件的文件,Unity根据meta里记录的GUID来区分项目中的不同资源;2.meta还记录了一些对应资源的非常重要的信息,比如:各个资源Inspector的信息等。来详细讲讲meta文件Unity引用...原创 2018-11-15 09:51:57 · 14672 阅读 · 0 评论 -
foreach产生GC Alloc的原因总结 Unity
内容会持续更新,有错误的地方欢迎指正,谢谢!foreach在Unity5.4以下会存在这个产生GC的bug,具体如下:先说结论: List和字典的Enumerator是值类型,创建时就不会在堆上分配,而是由调用这个Dispose,要转换为IDisposable接口(由值类型对象转化为接口类型的对象)导致的;而用foreach遍历ArrayList产生GC Alloc的起因就不一样,因为Ar...原创 2018-08-18 23:42:17 · 2173 阅读 · 0 评论 -
安卓设备连接Unity Profiler进行性能分析
内容会持续更新,有错误的地方欢迎指正,谢谢!方式一:手机上运行游戏,以ADB方式连UnityProfiler分析游戏性能1.安卓环境:jdk、sdk:cmd(Win+R打开界面并输入cmd) 里直接输入 java 能正常输出即可 https://www.jianshu.com/p/21babde25dd5 adb:cmd 里直接输入 adb 能正常输出即可 https://www...原创 2018-08-14 11:40:36 · 5569 阅读 · 0 评论 -
游戏AI之 有限状态机、分层有限状态机、行为树
内容会持续更新,有错误的地方欢迎指正,谢谢!FSM(有限状态机)、HFSM(分层有限状态机)、BT(行为树)1.有限状态机:可用于做任务动画的切换,也可用于做简单的AI。将行为分为一个个的状态,状态与状态之间的过渡通过事件的触发来形成。2.分层有限状态机:简单说,就是状态太多时,不好维护,于是将状态分类,将同类的状态作为一个状态机,然后再做一个大的状态机,来维护这些子状态机。比如:...原创 2018-04-02 23:58:52 · 5571 阅读 · 0 评论 -
Unity游戏存档的四种方式
【转载】http://blog.youkuaiyun.com/a237653639/article/details/50076755游戏存档在Unity中游戏存档有如下四种方式:PlayerPrefsc#序列化XML序列化Json游戏存档是老大之前吩咐要做的,一开始我问可以用PlayerPrefs不呢,锐哥老大回答说不可以,用Unity自带的会有很多的限制。那好吧,为了自由故...转载 2018-04-10 21:52:18 · 45348 阅读 · 2 评论 -
Unity游戏开发基础知识(新手必看)
内容会持续更新,有错误的地方欢迎指正,谢谢!0.Unity最大的优点unity提供的最大优点就是跨平台。 以前项目移植很麻烦,现在只要一份代码,然后注意平台差异就好了。1.灯光类型平行光:DirectionalLight 有一个方向,用于模拟阳光点光源:Point Light 一个球状,用于模拟灯泡,、爆炸等,别开启阴影运算以节约性能聚光灯:Spot L...原创 2018-04-02 11:45:33 · 10120 阅读 · 0 评论 -
Unity对象池
对对象池的解释以及优缺点,我在这里就不多做解释了,网络上已经有很完善的解释了,总结一句话,就是我们将对象存储在一个池子中,当需要再次使用时取出,而不需要每次都实例化一个新的对象,将对象循环利用起来。现在用一个简单的例子,来具体实现对象池。我们实现一个这样功能,按下鼠标左键,发射一颗子弹,3秒之后消失。在这个功能中,我们发射了上百上千发子弹,就需...转载 2018-03-04 23:17:09 · 473 阅读 · 0 评论 -
Unity项目开发中C#使用小技巧
内容会持续更新,有错误的地方欢迎指正,谢谢!本文是博主在用Unity开发游戏时的小技巧总结,以防忘记。1.C#属性的作用:其实,和public差不多,但是,如果需要对某个private字段(比如:age)有什么限制啥的,就很有用了:在set中,先判断age是否符合要求,符合要求再赋值。如果开发到后面,需要你去修改age的可取值的范围,这时,你外部用到这个age的地方都不需要改动,只需要修改...原创 2018-03-04 14:56:12 · 1271 阅读 · 0 评论 -
Unity性能优化汇总
内容会持续更新,有错误的地方欢迎指正,谢谢!性能优化嘛,大家都说像海绵中的水,挤一挤总会有的,但我却想说它像内衣里的肉,挤一挤真的可以有。哈哈哈,有点污,见笑了,进入正题。CPU方面的优化CPU优化不够会出现的问题:由于短时间内的计算量太大,导致画面流畅性降低,俗称跳帧发热严重,耗电量高CPU优化方向:DrawCalls物理组件GC(GC为处理内存,此项为C...原创 2018-03-05 00:05:15 · 9577 阅读 · 0 评论 -
Unity编辑器扩展
内容会持续更新,有错误的地方欢迎指正,谢谢!对Unity进行扩展,开发一些工具、窗口,帮我们做一些重复的工作(创建一百个敌人),用工具来完成节约开发时间。跟编辑器相关的代码都放在Editor文件夹中,打包时此文件夹不会被打包进游戏,只在编辑器中使用。1.使用MenuItem添加菜单栏按钮(包括设置按钮所在的路径):脚本不是以组件的形式来存在的,所以不继承MonoBehaviour;加上using U原创 2018-02-28 20:43:14 · 490 阅读 · 0 评论 -
Unity中如何使用委托
内容会持续更新,有错误的地方欢迎指正,谢谢!using System.Collections;using System.Collections.Generic;using UnityEngine;public class DelegateTest : MonoBehaviour{ private delegate void DelegateString(string log);//定义原创 2018-02-28 16:26:37 · 1051 阅读 · 1 评论 -
A*寻路算法的优化与改进
【转载】http://blog.youkuaiyun.com/silangquan/article/details/40516625 提要通过对上一篇A*寻路算法的学习,我们对A*寻路应该有一定的了解了,但实际应用中,需要对算法进行一些改进和优化。 Iterative Deepening Depth-first search- 迭代深化深度优先搜索在深度优先...转载 2018-03-05 00:08:43 · 7700 阅读 · 0 评论 -
Unity脚本自带函数的执行顺序
Awake ->OnEnable-> Start -> FixedUpdate-> Update -> LateUpdate ->OnGUI ->OnDisable ->OnDestroy每个方法详解: 1.Awake用于在游戏开始之前初始化变量或游戏状态。在脚本整个生命周期内它仅被调用一次.Awake在所有对象被初始化之后调用,所以你可以安全的与其他对象对话或用诸如GameObject.Fin转载 2018-03-05 02:16:54 · 459 阅读 · 0 评论 -
UGUI源码学习之Image
【转载】https://blog.youkuaiyun.com/a237653639/article/details/50774207声明:由于官方只公开了UGUI源码的C#封装的这层,并未公开C++底层代码,不过看看这些C#代码也不错UIBehavior这个父类总共有14个派生类,派生类包括Selectable、Graphic等。其中Button、Slide、Scrollbar、Toggle、Inp...转载 2018-04-10 17:24:41 · 1868 阅读 · 0 评论 -
UGUI源码学习之Button
内容会持续更新,有错误的地方欢迎指正,谢谢!该文章 补充部分 参考了https://blog.youkuaiyun.com/a237653639/article/details/50804633,感谢原作者。声明:由于官方只公开了UGUI源码的C#封装的这层,并未公开C++底层代码,不过看看这些C#代码也不错UIBehavior类及其派生类的类图如下: 可以看到在UGUI系统中所有的UI组件...原创 2018-04-10 13:30:37 · 1656 阅读 · 0 评论 -
游戏开发中常用的算法
内容会持续更新,有错误的地方欢迎指正,谢谢!1.与数组相关的算法:快速排序(分治思想的应用):不是任何情况都适用,数据量小的话,还不如冒泡快,但快排的确很优秀。堆排序:可用于做游戏排行榜前多少多少名,根据求最大的K个数还是最小的K个数来建最大堆和最小堆,再将最大/小堆的根节点和最后一个子叶节点交换,最后调整堆,重复刚才那两个步骤,直到得到K个数。当然,这种题也可以用红黑树实现的set来...原创 2018-04-02 17:16:57 · 19553 阅读 · 0 评论 -
游戏场景管理—四叉树
内容会持续更新,有错误的地方欢迎指正,谢谢!场景管理:把不同的物体归属到不同类别里,而相似性的判断是根据物体的空间相干性。 把物体分类的目的:希望下次能快速找到所需的物体,所以更偏向于用四叉树来管理我们的场景,因为四叉树构建了这样的一个快速索引。四叉树:设想一个二维平面,我们可以先把它按田字形划分为四份,如果这四份子空间中,存在不包含任何物体的子空间,那么我们就标记一下,然后在包含物体的...原创 2018-04-02 16:21:51 · 4161 阅读 · 1 评论 -
游戏开发中常用的数据结构
内容会持续更新,有错误的地方欢迎指正,谢谢!1.数组:需处理的元素个数确定并且需使用下标时可以考虑,不过建议用泛型List 优点:数组在内存中是连续存储的,索引和修改的速度都非常快 缺点:插入和删除很慢,长度开辟过长易造成内存浪费,长度开辟过短易造成内存越界2.List: List是泛型的,即List<T>,需处理的元素个数可以不确定,不存在装箱与拆箱,建议多用;而Arra...原创 2018-04-02 16:16:13 · 6324 阅读 · 1 评论 -
渲染的基本常识
内容会持续更新,有错误的地方欢迎指正,谢谢!1.渲染流程(又叫渲染管线、渲染流水线)渲染流程的任务:从一个三维的场景出发,渲染出一张二维的图像。《Real-Time Rendering》中将渲染流程分成三个阶段:应用阶段、几何阶段、光栅化阶段。应用阶段主要是CPU与内存打交道,输出渲染图元(渲染所需的几何信息:点、线、三角面等),将图元加载到显存中,如此,GPU可...原创 2018-03-13 13:53:22 · 4115 阅读 · 0 评论 -
A*寻路算法(记忆版)
【转载】http://blog.youkuaiyun.com/jialeheyeshu/article/details/53105810 【转载】http://blog.youkuaiyun.com/silangquan/article/details/40400641A*寻路算法介绍A*算法的公式为:f(n)=g(n)+h(n),g(n)表示从起点到任意顶点n的实际距离,h(n)表示任意顶点n到目标顶点的...转载 2018-03-06 19:38:25 · 2804 阅读 · 0 评论