![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
unity3d
文章平均质量分 77
牛掰是怎么形成的
我爱游戏,我爱编程,我爱技术,我更爱用自己的热情和技术去实现自己的游戏产品。
展开
-
仿造unity引擎中动画系统源码实现一款动画系统
允许用户自定义动画可以增加游戏的互动性和创造性。这可能涉及到提供一个动画编辑器,玩家可以在其中创建和分享自己的动画。原创 2024-06-12 20:46:22 · 819 阅读 · 0 评论 -
游戏App资源更新
下载资源是更新过程中的一个关键步骤,它涉及从服务器获取新的或更新的文件并将其保存到用户的设备上。通过这样的流程,用户可以获得所有必要的信息来做出是否更新的决定,同时确保他们对即将到来的变化和新功能有充分的了解。通过这样的完成更新流程,用户可以放心地享受他们的应用程序或游戏,而开发者可以确保提供了一个稳定和改进的产品。用户友好的界面:更新信息的展示应该是用户友好的,最好有视觉上的吸引力,如使用图标、屏幕截图等。通过这样的下载资源流程,用户可以平滑地接收到更新,而开发者可以确保资源的完整性和安全性。原创 2024-05-09 20:10:08 · 855 阅读 · 0 评论 -
protobuff
Protocol Buffers(简称 Protobuf)是由 Google 开发的一种语言中立、平台中立、可扩展的序列化结构数据的方法,常用于数据存储、通信协议等方面。Protobuf 工具主要包括编译器和库,它们提供了以下功能:定义数据结构:使用 .proto 文件定义数据结构。这是一种类似于接口描述语言的简单语法,用于指定要序列化的结构化数据的模式。编译 .proto 文件:Protobuf 编译器 protoc 能够读取 .proto 文件,并生成对应的数据访问类。原创 2024-04-30 17:12:25 · 501 阅读 · 0 评论 -
unity引擎如何构建安卓包
在Unity引擎中构建安卓包需要以下步骤:安装必要的软件:首先,你需要安装Unity引擎。然后,你需要安装Android开发所需的软件,包括Java开发工具包(JDK)和Android SDK。你可以在Unity中通过Unity Hub的"Installs"选项卡安装和管理这些工具。设置Unity项目:打开你的Unity项目,然后在菜单栏中选择"File" -> “Build Settings”。在弹出的窗口中,选择"Android",然后点击"Switch Platform"。原创 2024-04-23 18:05:30 · 1165 阅读 · 3 评论 -
多线程和协程的区别和联系
但是,线程的切换和同步需要消耗一定的资源,如果线程数量过多,可能会导致性能下降。协程:协程的切换只涉及到一些寄存器的保存和恢复,以及栈的切换,所以开销非常小。协程:协程编程通常比多线程编程更简单,因为协程是协作式的,不需要处理线程同步和数据共享的问题。组合使用:在某些编程语言中,例如Python,可以在一个线程中运行多个协程,这样可以结合多线程的并行性和协程的轻量级切换优势。总的来说,多线程和协程都是实现并发的方式,但它们各有优势,适用于不同的场景。协程的切换和调度由程序控制,不需要操作系统的介入。原创 2024-04-23 15:37:00 · 302 阅读 · 0 评论 -
Unity常用优化技术漫谈(1)
着色器编译是一个耗时的过程,特别是对于复杂的着色器或者拥有大量变体的着色器。不同的驱动程序版本可能会有不同的编译器行为,这也是为什么游戏开发者需要在多种硬件和驱动程序配置上测试他们的游戏,以确保着色器能够正确编译和执行。运行时编译着色器是一个复杂的过程,Unity通过这些机制和工具来帮助开发者管理着色器编译,以确保游戏有最佳的性能和用户体验。着色器预热(Shader Warm-up):在游戏的加载阶段或者在场景加载时,可以预先渲染一些不会显示给玩家看的场景,这样可以提前触发着色器的编译。原创 2024-03-04 21:56:50 · 1087 阅读 · 0 评论 -
漫谈Unity自动批处理
为了避免动态批处理的性能瓶颈,你需要采取一种全面的优化策略,这包括减少CPU和GPU的负担、优化内存使用、减少Draw Calls和渲染状态变化,以及合理管理动态光照和阴影。确保它实际上在减少Draw Calls并提高性能,在Unity中,动态批处理是一种自动优化技术,它可以在运行时将多个小的、相似的游戏对象合并成一个批次来渲染,以减少Draw Calls的数量。通过这些方法,你可以确保你的游戏在不同的设备上都能保持良好的性能,同时也为玩家提供流畅的游戏体验。通过材质排序,可以尽量减少这种切换。原创 2024-03-04 20:54:23 · 1051 阅读 · 0 评论 -
C#之internal访问修饰符
internal:中文翻译为内部的。 那么我们假如作为C#程序的开发者 当我们建立一个类的时候开始不写类的访问修饰符是什么样呢 class Test { //定义字段 internal protected int intNumber = 23; } 其实也许很多人以为是等价于 public class Test原创 2017-11-06 01:52:08 · 17641 阅读 · 0 评论 -
Unity中所谓的回调函数
我先描述一个情形: 比如一个A程序员写了一个比较两个数大小的方法 bool CompareTwo(int a, int b) //约定返回真表示a >= b { return a >= b; }现在B程序员想判断1和2哪个大。但是他只有数据不打算写方法,他比较笨。所以他就调A程序员写的代码,你可以看成是库。原创 2017-10-29 01:48:07 · 5029 阅读 · 1 评论 -
Unity脚本组件勾选框的存在的意义
本人经过测试假如你的脚本没有unity生命周期函数,那么你会看到Inspector面板对应的脚本没有勾选框如下: 特别提示有Awake()复选框是没有渲染出来给程序员用的下面我们给我们的测试脚本增加unity生命周期函数:比如Update 测试图贴出我在删了这个方法 增加其他生命周期方法:很多就不测了:现在主要讨论的是为啥同为生命周期函数A原创 2017-10-28 21:50:16 · 2343 阅读 · 1 评论 -
谈谈abstract关键字在脚本中的作用之一
下面我来谈谈abstract关键字在脚本中的作用:为了简单首先我贴上代码 public abstract class Singleton : MonoBehaviour where T : MonoBehaviour { private static T m_instance = null;public static T Instance{ get { return原创 2017-10-28 22:42:16 · 421 阅读 · 1 评论 -
unity对象池技术原理杂谈
首先我们来谈一谈对象池技术的介绍:由于Cpu回收游戏对象和创建游戏对象,涉及到内存的分配和回收,研究过操作的同学应该知道当应用程序也就是我们的游戏需要生产一个怪物的时候,我们首先会和操作系统申请一份内存区域准备存放我们的游戏怪物,这个时候操作系统会去检测有没有容的下我们怪物内存大小啊,这个操作就是细活,cpu这个时候会进行许多的工作,当我们怪物掉血死忙的时候我们需要把怪物从屏幕中清除出去,如果我们直原创 2017-10-28 23:53:14 · 1226 阅读 · 0 评论