![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity3D
文章平均质量分 78
漫漫无期
这个作者很懒,什么都没留下…
展开
-
MonoBehaviour引擎源码剖析Awake、Start、Update等方法执行原理
MonoBehaviourSerialization.cpp的TransferEngineAndInstance方法中调用SetScript()void MonoBehaviour::TransferEngineAndInstance (TransferFunction& transfer){ PPtr<MonoScript> newScript = TransferEngineData (transfer); if (transfer.IsReadingPPtr ())原创 2021-09-02 20:38:45 · 1328 阅读 · 0 评论 -
前向渲染和延迟渲染
https://zhuanlan.zhihu.com/p/386420933原创 2021-08-26 21:18:36 · 4790 阅读 · 0 评论 -
Unity AssetBundle概述
AssetBundle相关知识##什么是AssetBundle?一个AssetBundle可以当做一个文件集合,它包含了Unity可以在运行时加载的特定于平台的非代码资产(例如模型、纹理、预制组件、音频,甚至整个场景)。AssetBundle可以表示彼此之间的依赖关系;例如,一个AssetBundle中的material可以引用另一个AssetBundle中的texture。为了在减轻网络传输压力,您可以根据需求选择内置算法(LZMA和LZ4)来压缩AssetBundle。AssetBundl.原创 2021-08-28 09:21:59 · 281 阅读 · 0 评论 -
Unity的Assembly Definition File好处及使用它反射调用某个方法
private void ReflectionMethod(Type thisType, string findAssemblyName, string fullTypeNameContainsNamespace, string methodName,BindingFlags bindingFlags, object[] args){ var thisAssembly = thisType.Assembly; string filePath = thisAssembly.Loc.原创 2021-08-16 20:26:25 · 693 阅读 · 0 评论 -
关于Camera组件中Clear Flags的理解
场景中有两台摄像机,分别为Camera Depth = 0,Camera Depth = 1。相机0设置为SkyBox(最底层机的相机的DepthBuffer/ColorBuffer清空与否都没所谓)相机1设置为SkyBox时如下图实验开始:1. 当相机1选择Depth Only(清空前面全部相机的DepthBuffer,保留前面全部相机的ColorBuffer)2. 当相机1选择Don’t Care(保留前面全部相机的DepthBuffer,保留前面全部原创 2021-08-08 09:04:48 · 1429 阅读 · 0 评论 -
Mono和IL2CPP
什么是跨平台首先,什么是跨平台?跨平台:一次编译,不需要任何代码修改,应用程序就可以运行在任意在平台上跑,即代码不依赖于操作系统,也不依赖硬件环境。游戏肯定需要跨平台,不能只支持一种平台,不然每个对应的平台做出一种对应的编译器,那真的会累死。所以对于跨平台的需求,对于游戏开发而言,很重要。Unity的架构需求设计当然也需要这个特性。Mono介绍Mono是一个由Xamarin公司所主持的自由开放源码项目。Mono的目标是在尽可能多的平台上使.net标准的东西能正常运行的一套工具,转载 2021-08-05 11:33:23 · 3278 阅读 · 0 评论 -
浅析Unity协程实现原理
介绍协程Coroutine在Unity中一直扮演者重要的角色。可以实现简单的计时器、将耗时的操作拆分成几个步骤分散在每一帧去运行等等,用起来很是方便。但是,在使用的过程中有没有思考过协程是怎么实现的?为什么可以将一段代码分成几段在不同帧执行?本篇文章将从实现原理上理解协程。迭代器在使用协程的时候,总是声明一个返回值为IEnumerator的函数,并在函数中包含yield return xxx或者yield break值类的语句:private IEnumerator WaitAnd原创 2021-07-04 17:01:15 · 1341 阅读 · 2 评论 -
基于StrangeIoC的点击方块加分的Demo
1、项目简介:创建一个Cube,Cube上有一个Text的UI显示一个随机的分数,Text上的值也是随机的,当我们鼠标点击中一次Cube分数就会增加一。运行逻辑是:开始的时候View通过Mediator向Controller请求数据,然后Controller向服务端请求数据,服务端Service返回一个随机值给Controller里面创建的请求数据的Command,Control...转载 2018-11-10 17:15:56 · 325 阅读 · 0 评论 -
基于StrangeIOC的HelloWorld的Demo
1、将StrangeIoC框架的包含文件放在游戏工程目录下2、在Game/Scripts/Command下创建StartCommand.cs:using strange.extensions.command.impl;using strange.extensions.context.api;using UnityEngine;public class StartCommand:...转载 2019-07-01 15:17:51 · 130 阅读 · 0 评论 -
UGUI实现背包系统
一、项目需求:1、可以生成物品2、提示物品相关信息3、能拖拽背包中的物品进行交换、丢弃操作 二、实现步骤:1,背包中的物品包括各种种类,如武器、消耗品、防具等,它们具备一些相同的属性,如ID、名字、描述、购买价格、出售价格、图标等,同时需要一个字段用于标志这个物品到底是什么类型的(让子类进行修改,最好的类型是枚举,这里我使用的是字符串),于是很容易想到建立一个基类Item:...原创 2018-09-09 10:45:55 · 4299 阅读 · 2 评论