摘要:
卓平台下JAR包变成了压缩包,直接通过File来读取StreamAsset下的文件是不行的 通过UnityWebRequest来读取,以某一个XML文件为例 var path = Path.Combine (Application.streamingAssetsPath, "xxx");// 使用C 阅读全文
posted @ 2021-11-03 22:43
Logarius
阅读(239)
评论(0)
推荐(0)
摘要:
单张纹理 就是用纹理颜色代替漫反射颜色 Shader "Custom/SingleTexture" { Properties { // 声明纹理属性 _MainTex("MainTexture",2D)="white"{} _Specular("Specular",Color)=(1,1,1,1) 阅读全文
posted @ 2021-11-03 22:41
Logarius
阅读(81)
评论(0)
推荐(0)
摘要:
深度测试 根据深度缓冲,比较两个片元距离摄像机的距离,如果当前片元比起深度缓冲中的值来说,离摄像机更远,那么当前片元不会被写入。 透明度测试 如果片元的透明度不满足条件,则被舍去,不进行任何处理。如果满足条件,那就当做不透明物体进行处理。不需要关闭深度写入。 透明度混合 根据当前片元的透明度,与颜色 阅读全文
posted @ 2021-11-03 22:41
Logarius
阅读(94)
评论(0)
推荐(0)
摘要:
环境光 可以认为就是给物体加一层底色,因为即使在黑暗的情况下,世界上通常也仍然有一些光亮(月亮、远处的光),所以物体几乎永远不会是完全黑暗的。为了模拟这个,我们会使用一个环境光照常量,它永远会给物体一些颜色。 在Windows/Lighting/Settings中的AmbientOcclusion中 阅读全文
posted @ 2021-11-03 22:38
Logarius
阅读(190)
评论(0)
推荐(0)
摘要:
线性代数基础 单位向量 向量点积 计算投影 因为是B在A上的投影,所以投影向量必然是沿着A方向的 判断方向 点积结果的正负,依赖于夹角的大小,当夹角大于90度时,Cos结果为负,此时可以判断两个向量朝向不同 向量叉积 两个向量叉积的结果,垂直于这两个向量,此时3个向量可以构成一个三维坐标系 判断左右 阅读全文
posted @ 2021-11-03 22:37
Logarius
阅读(323)
评论(0)
推荐(0)
摘要:
输入装配阶段 三维模型本质是成千上万的顶点数据,比如一个正方形就有8个顶点,输入装配阶段则是对于模型顶点的第一次处理,将顶点装配成图元 该阶段不可编程 顶点着色阶段 顶点着色器会遍历传入的每一个顶点进行着色,注意,虽然叫着色器,但并不是字面意义上“计算颜色”,顶点着色阶段还有很多额外的操作,比如最重 阅读全文
posted @ 2021-11-03 22:37
Logarius
阅读(117)
评论(0)
推荐(0)
摘要:
通过ObjectField就可以轻松实现,问题在于如何获得脚本对象? MonoScript.FromMonoBehaviour可以获得一个MonoScript对象,而MonoScript继承TextAsset继承Object GUI.enabled = false; EditorGUILayout. 阅读全文
posted @ 2021-11-03 22:34
Logarius
阅读(51)
评论(0)
推荐(0)
摘要:
EditorUtility.OpenFilePanel (); EditorUtility.OpenFolderPanel (); 阅读全文
posted @ 2021-11-03 22:34
Logarius
阅读(53)
评论(0)
推荐(0)
摘要:
if (GUILayout.Button("清空")) { if (EditorUtility.DisplayDialog("警告","确定要...?","Ok","Cancel")) { // Do Something } else { // Do Something } } 阅读全文
posted @ 2021-11-03 22:33
Logarius
阅读(28)
评论(0)
推荐(0)
摘要:
前言 目前网上找到的相关文章都是互相转发抄袭,真的毫无阅读价值,如此简单的通信竟然花了我好几天的功夫学习,故做此记录 Android层 准备 环境配置相关的内容就不介绍了 创建一个空项目 下面配置可以随便写,不会用到,但还是规范一点吧! 创建项目,等待Gradle Sync,切记不要使用代理,不要使 阅读全文
posted @ 2021-11-03 22:32
Logarius
阅读(201)
评论(0)
推荐(0)
摘要:
前言 本文章学习自这里,这是素材文件的下载链接 多半内容都是文章内容加上自身理解,受限于时间以及自身能力水平,谨慎参考 首先需要3个Unity的官方包,请打开Unity的预览包选项,不然很多预览阶段的包你是无法在包管理器中看到的,具体如图 随后在Package Manager中安装Jobs、Burs 阅读全文
posted @ 2021-11-03 22:28
Logarius
阅读(653)
评论(0)
推荐(0)
摘要:
先新建如下脚本 ObjectBase是对象基类,如果某个对象想要被对象池管理,那就必须继承自这个类,实际上真正的对象被封装在这个类内部 IObjectPool是对象池接口,OBjectPool是对象池,和引用池的结构很像 ObjectPoolManager就是核心管理器了 ObjectBase na 阅读全文
posted @ 2021-11-03 22:19
Logarius
阅读(176)
评论(0)
推荐(0)
摘要:
用于管理游戏运行时的各种数据信息,以一种树状结构储存 新建如下两个脚本 其中DataNode是数据节点类,Manager就是管理器了 DataNode 字段与属性 namespace SimpleGameFramework.DataNode { public class DataNode { #re 阅读全文
posted @ 2021-11-03 22:19
Logarius
阅读(176)
评论(0)
推荐(0)
摘要:
所谓流程,本质是对于状态机的再封装。一个游戏在运行是,不可能全程处于一个状态,游戏运行的不同状态,我称其为流程,比如刚打开游戏的时候,可能处在登录页面,或者说黑屏动画的时候在加载资源,这就是游戏运行的两个不同状态,这就是流程。 ProcedureBase 流程基类,本质就是一个状态 /// <sum 阅读全文
posted @ 2021-11-03 22:18
Logarius
阅读(126)
评论(0)
推荐(0)
摘要:
多语言也是很常用的一个功能,如果游戏想要支持多种语言,那就不得不设计一个多语言的框架。比如中文的“确定”,英文要叫“OK”,你不可能创建多个语言版本的UI,那会十分繁琐,难不成有二十种语言,你就创建二十种UI?那也太折磨人了... 目前只考虑到文字的多语言,实际上还有其他资源也需要支持本地化,比如众 阅读全文
posted @ 2021-11-03 22:18
Logarius
阅读(140)
评论(0)
推荐(0)
摘要:
状态机很好理解,它包含了很多的状态,最简单的例子就是Unity自带的Animator Controller,他本身就是一个状态机,里面有很多的动画状态,不同的状态代表不同的动画,然后我们给不同状态之间加上条件,描述状态的转移。 这个模块本身是很好理解的,但目前我也不是很清楚具体会应用在什么地方,参照 阅读全文
posted @ 2021-11-03 22:17
Logarius
阅读(157)
评论(0)
推荐(0)
摘要:
上一节我们写了一个简单的引用池,而单一的引用池是没有啥作用的,事件池就是引用池的作用之一 我们当然可以把事件定义在模块的内部,比如把一个打开UI的事件定义在UI模块内,但是随着我们模块的不断增多,如果所有事件都定义在自己的模块内,在后期是很难维护的,我们都不知道一共定义了哪些事件...因此,一个全局 阅读全文
posted @ 2021-11-03 22:16
Logarius
阅读(379)
评论(0)
推荐(0)
摘要:
从二维开始 假设有这样一张图片,横轴是X轴,纵轴是Y轴 想象一下,假设我们现在是从正面在看这张图,那么如果我们从顶部来看,俯视的看,会是什么样的情况?可能很抽象,尽可能的想象一下,应该是如此,我们看到的应该是图中我画出来的那一条线段。 为什么最开始是一段绿色而不是红色?很明显,因为我们是俯视来看的, 阅读全文
posted @ 2021-11-03 22:15
Logarius
阅读(61)
评论(0)
推荐(0)
摘要:
引用池,和对象池的概念非常像,但是对象池服务于具体的GameObject对象,而引用池服务于普通的C#类。举个例子,如果打开UI的时候你想传递一些数据,最简单的方法就是 class UIData { //... } main() { UIData data = new UIData(); OpenU 阅读全文
posted @ 2021-11-03 22:15
Logarius
阅读(271)
评论(0)
推荐(0)
摘要:
简单绘制一个三角形 上一节末我们已经能够画一条直线了 void line(int x0, int y0, int x1, int y1, TGAImage& image, TGAColor color) { // ... } 在VS里新建一个geometry.h,然后把代码复制进去,这个头文件里就是 阅读全文
posted @ 2021-11-03 22:14
Logarius
阅读(116)
评论(0)
推荐(0)
摘要:
工具类 上一节的末尾,我们需要创建很多UI来测试,因为需要很多Button事件,所以我们写了很多函数,然后...然后一个一个拖到了Button上...很明显的能够感到,这个过程是真的很痛苦...这才五六个Button而已,而实际上我们可能需要几十个几百个Button事件,如果我们都采用这样直接拖放的 阅读全文
posted @ 2021-11-03 22:13
Logarius
阅读(64)
评论(0)
推荐(0)
摘要:
数据结构设计 我们还不能直接开始设计UI的开闭接口,必须先确定好,应该用什么样的一种格式来储存所有的UI脚本,其实很简单 我们能确定一共会有多少个UI吗?这不一定。 我们需要随机访问UI吗?一般没这个需求。 我们可能会频繁创建和删除UI吗?这倒是有可能的。 注意另一个情况,一般来说,我们游戏的UI打 阅读全文
posted @ 2021-11-03 22:12
Logarius
阅读(46)
评论(0)
推荐(0)
摘要:
理论 首先,为什么需要一个UI框架?抛开所有的想法, 假设我们用最最最基础的做法来做一个UI,我们会怎么操作?很简单,作为入门的一个小白,我可能会在场景里拖一个canvas,然后设置他的active为false,并在需要的时候激活canvas,那样就能显示和隐藏 这没有问题,毕竟我的第一个UI界面就 阅读全文
posted @ 2021-11-03 22:11
Logarius
阅读(54)
评论(0)
推荐(0)
摘要:
UI的注册 好了,在上一节结尾,我们已经能打开一个UI了,那么我们的管理器完成了吗? 是的,完成了......个锤子! 最直观的问题是,我们现在打开的UI是固定的,废话,因为Resources加载的路径都被写死了...... public void OpenUI() { /// 路径是死的!! Ga 阅读全文
posted @ 2021-11-03 22:11
Logarius
阅读(20)
评论(0)
推荐(0)
摘要:
说在前面! 本系列并非是教程,只是个人学习感想,关于图形学,个人是感兴趣的,但也只是感兴趣而已,并没有像大佬们那样学习的很深 本系列主要学习自这里,链接里的文章写的很好,但是很多知识谈的太粗略,对于懂的大佬自然懂,不懂的萌新看着会比较吃力 本系列不会讲述太细节的图形学基础知识,但能提到尽量都会提,纯 阅读全文
posted @ 2021-11-03 22:10
Logarius
阅读(159)
评论(0)
推荐(0)
摘要:
用离散的思维考虑问题! 在现实世界我们用笔画一条直线,那它看起来就是光滑的、连续的一条直线,但在计算机世界,如果我们在屏幕上也画一条直线...好吧那看起来也很光滑连续...但你要知道其实这是因为屏幕分辨率比较高,如果我们不断放大图片...那就会像这样: 图一:10%缩放 图二:200%缩放 好吧这其 阅读全文
posted @ 2021-11-03 22:10
Logarius
阅读(253)
评论(0)
推荐(0)
摘要:
万事开头难! 想了半天,应该从哪儿开始呢,算了还是别开始了... 哈哈开玩笑的让我们先新建一个Unity项目,并给咱们这个框架取一个响当当的名字:SimpleGameFramework,简称SGF(好吧我承认名字很随便,你随意) 项目结构: SimpleGameFramework 好吧这只是一个毫无 阅读全文
posted @ 2021-11-03 22:07
Logarius
阅读(62)
评论(0)
推荐(0)
摘要:
什么是框架? 在所有事情开始之前,我想问一个问题:框架是什么? 我本科是学JAVA的,搞JAVA的同学都清楚,JAVA系的框架那叫一个成熟那叫一个多,虽然我没啥兴趣学,但好歹也在学校的课程安排下使用过很多,但我从来没想过这个问题,什么叫框架? 单例模式是框架吗?MVC是框架吗?库是框架吗?Syste 阅读全文
posted @ 2021-11-03 22:06
Logarius
阅读(65)
评论(0)
推荐(0)

浙公网安备 33010602011771号