龙之介Unity学习
文章平均质量分 68
游戏开发龙之介
自跨专业学编程的萌新
展开
-
[游戏开发]性能优化
一、渲染模块降低Draw CallDC DrwaCall Unity DCDraw Call是渲染模块优化方面的重中之重,一般来说,Draw Call越高,则渲染模块的CPU开销越大。降低Draw Call的方法则主要是减少所渲染物体的材质种类,并通过Draw Call Batching来减少其数量。游戏性能并非Draw Call越小越好。这是因为,决定渲染模块性能的除了Draw Call之外,还有用于传输渲染数据的总线带宽。当我们使用Draw Call Batching将同种材质的网格模型拼合在一原创 2021-11-24 16:33:26 · 3934 阅读 · 0 评论 -
unity mono生命周期
Awake:当一个脚本实例被载入时Awake被调用。我们大多在这个类中完成成员变量的初始化OnEnable:当对象变为可用或激活状态时此函数被调用。Start:仅在Update函数第一次被调用前调用。因为它是在Awake之后被调用的,我们可以把一些需要依赖Awake的变量放在Start里面初始化。 同时我们还大多在这个类中执行StartCoroutine:进行一些协程的触发。要注意在用C#写脚本时,必须使用StartCoroutine开始一个协程,但是如果使用的是JavaScript,则不需要这么做。原创 2021-11-24 16:25:38 · 2526 阅读 · 0 评论 -
如何提升运行效率(性能优化)
一、渲染模块降低Draw CallDC DrwaCall:https://blog.csdn.net/qq_36848715/article/details/80424019Draw Call是渲染模块优化方面的重中之重,一般来说,Draw Call越高,则渲染模块的CPU开销越大。降低Draw Call的方法则主要是减少所渲染物体的材质种类,并通过Draw Call Batching来减少其数量。游戏性能并非Draw Call越小越好。这是因为,决定渲染模块性能的除了Draw Call之外,还有用原创 2021-10-31 12:29:54 · 2300 阅读 · 0 评论 -
Unity mono生命周期
Awake:当一个脚本实例被载入时Awake被调用。我们大多在这个类中完成成员变量的初始化OnEnable:当对象变为可用或激活状态时此函数被调用。Start:仅在Update函数第一次被调用前调用。因为它是在Awake之后被调用的,我们可以把一些需要依赖Awake的变量放在Start里面初始化。 同时我们还大多在这个类中执行StartCoroutine:进行一些协程的触发。要注意在用C#写脚本时,必须使用StartCoroutine开始一个协程,但是如果使用的是JavaScript,则不需要这么做。原创 2021-10-31 12:30:43 · 230 阅读 · 0 评论 -
Unity Raycast详解
射线检测的相关文档public static bool RayCast(Vector3 origin, Vector3 direction, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);public static bool Rayca原创 2021-11-24 16:38:50 · 4516 阅读 · 0 评论 -
基于Unity实现Excel解析的学生登陆系统
工程源文件https://gitee.com/NoGameNoLife1234_admin/studentregistrationsystem.git!:之前曾经尝试使用Unity2019.4.8.f1开发发现其无法正确解析Excel,后又换成2017.2.0f3即可正常解析关于Excel解析部分我稍后再说。Part1既然是学生系统所以我们需要先想好怎么存数据。其实很简单一个序列化student类就行我这里是用一个字典存学生信息Dic StudentInfoD原创 2021-07-06 00:29:22 · 507 阅读 · 0 评论 -
unity实现GalGame式的树状结构关系链
unity实现GalGame式的人物关系链写在开头:我参加了2021 Global Gamejam全球游戏设计比赛经过全员讨论最后决定根据主题《Lost and Found》做一个失物招领处的游戏。大概是小清新风格的游戏视频链接游戏大概玩法就是顾客过来陈述自己的想法,玩家给予顾客物品,顾客会根据获得的物品解锁不同的分支剧情。下图是关系链:是的,树状结构是非常复杂的一种关系链,以及未来可能会出现非二叉树的情况那么,正片开始:**人物关系链的树状结构如何建立舒适的数据结构:**首先我原创 2021-02-18 13:52:27 · 906 阅读 · 3 评论 -
unity Debug输出日志
之前unity5.x在代码中写了debug.log…等等,打包之后在当前程序文件夹下会有个对应的"outlog.txt",2017之后这个文件被移到C盘用户Appdata/LocalLow/公司名 文件夹下面。当然可以自己写一个 public class MyDebug { private static string path = @"D:/MyDebug.txt"; public static void Log(string str) {原创 2021-07-04 17:41:24 · 678 阅读 · 3 评论 -
Unity用OnPopulateMesh绘制自定义圆形遮罩超详解
下图是最终成品OnPopulateMesh这个函数的主要作用就是用于构建Mesh。然后参数VertexHelper就是一个容器,存放需要渲染的mesh信息。具体可以看https://zhuanlan.zhihu.com/p/33827367这篇文章介绍OnPopulateMesh的这个函数本来就只是绘制一个矩形(两个三角形就搞定了)。但是如果我们可以override它来实现不同的性状。那么如何绘制一个⚪呢?首先我们需要知道一个⚪是怎么组成的(指由三角形)没错,⚪是由一圈三角形组成,如果三角形原创 2022-02-18 16:52:21 · 2043 阅读 · 0 评论 -
荒野乱斗好友系统分析
*添加好友以及好友列表现象好友请求如果你一直不处理,他会一直存留(退出游戏再登也会存在)分析好友请求需要持久化存储。等到另一个玩家同意之后才会真正的加上好友[数据库写上关系][好友请求怎么存储的话?不是很懂,难道用数据库吗?]这块比较简单就不做过多赘述*好友状态广播现象会在邀请列表中显示 空闲/在房间且房间未满 的好友列表并且会在主菜单弹出一个云,并且标明好友名称推测根据好友的状态是否为 空闲/在房间且房间未满 然后显示在列表中(咱先假设好友状态有:战斗中,空闲,在房间且房间未.原创 2021-10-30 23:22:12 · 2332 阅读 · 0 评论 -
编译器扩展-ScriptableWizard
可以创建一个对话框,然后统一修改某些组件的值public class Change :ScriptableWizard { public int 字段 = 100; /// <summary> /// ///创建对话框 /// </summary> [MenuItem("龙之介工具箱/对话框", false, 100)]//按ctrl+E static void ToFly10()原创 2021-09-25 15:15:33 · 274 阅读 · 0 评论 -
编译器扩展-MenuItem
MenuItemMenuItem属性允许你添加菜单项到主菜单和检视面板上下文菜单。用法1:层级划分以及划线[MenuItem(“龙之介工具箱/起飞”)]static void ToFly(){UnityEngine.Debug.Log(“qf”);}/// <summary>/// 默认值为1000 画横线的要求:priority的值差11/// </summary>[MenuItem("龙之介工具箱/qf", false,1)]static void原创 2021-09-25 13:38:16 · 157 阅读 · 0 评论 -
计算机网络-DNS(Domain Name System)
DNS必要性{IP地址标识主机,路由器但IP地址不好记忆,不便人类使用人类一般更偏于使用简单易懂的字符串来标识Internet设备所以存在“字符串”–IP地址转换的必要性人类用户提供要访问机器的“字符串”名称由DNS负责转换成为二进制的网络地址}DNS主要目的{主要思路:{分层的基于域的命名机制若干分布式的数据库完成运行在UDP之上端口号为53的应用服务核心的Internet功能,但以应用层协议实现}主要目的:完成主机域名和IP地址的转换}DNS需解决问题{如果只原创 2021-09-25 13:26:57 · 188 阅读 · 0 评论 -
Unity性能优化:代码优化(CPU)
DrawCalls{就是cpu对图形绘制接口调用,CPU通过调用图形库接口,命令GPU进行渲染操作。一次调用就是一次DrawCall。所以如果调用次数多的话就会大量占据GPU的性能消耗。优化方案:{1 使用Draw Call Batching,也就是描绘调用批处理。Unity在运行时可以将一些物体进行合并,从而用一个描绘调用来渲染他们。2 通过把纹理打包成图集来尽量减少材质的使用。3 尽量少的使用反光,阴影之类的,因为那会使物体多次渲染。}}物理组件(Physics){设置一个合适的原创 2021-09-12 19:35:14 · 780 阅读 · 0 评论 -
Unity性能优化:渲染优化(GPU)
GPU和CPU的分工:GPU用于大量可并行的简单任务,比如场景渲染,光照处理。一般CPU用于一些数值运算,比如伤害,随机数等等。LOD:Levels of Detail的简称,即多细节层次技术。是指根据物体模型的节点在显示环境中所处的位置和中药肚,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。Occlusion Culling:遮挡剔除。可在对象因被其他物体遮挡,当前在相机中无法看到时,禁用对象渲染。该功能不会在三维计算机图形中自动开启,因为在大部分情况下,离相机最原创 2021-09-12 19:33:09 · 2291 阅读 · 0 评论 -
Unity性能优化:资源优化
资源优化标准{Mesh{动态模型:面片数< 3000 材质数<3 骨骼数<53静态模型: 顶点数<500}Audio{长时间音乐:bgm 压缩格式mp3短时间音乐:音效 非压缩格式wav有三种压缩格式Decompress on Load:在硬盘上压缩这个文件,并在第一次加载到内存的时候使用它,这是默认的选项,大部分情况都是用这个Compressed in Memory:保持声音在内存中是压缩的并在播放时解压缩。这会造成更多的CPU的开销,但可以提高加载速度并原创 2021-09-12 19:29:25 · 550 阅读 · 0 评论 -
Unity性能优化:优化相关前提
Unity游戏安卓包运行卡的原因? Mono{首先来了解一下Mono虚拟机。Unity将游戏运行在一个Mono虚拟机上,所以能实现跨平台的功能。但是由于有Mono虚拟机的存在所以我们实际打出来的包=(游戏+mono),所以Unity打出的包会很大。}Profiler{可以查看很多性能有关的}DrawCall{DrawCall:就是cpu对图形绘制接口调用,CPU通过调用图形库接口,命令GPU进行渲染操作。一次调用就是一次DrawCall。所以如果调用次数多的话就会大量占据GPU的性原创 2021-09-12 19:26:12 · 768 阅读 · 0 评论