自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 08 事件管理器

上一节我们写了一个简单的引用池,而单一的引用池是没有啥作用的,事件池就是引用池的作用之一我们当然可以把事件定义在模块的内部,比如把一个打开UI的事件定义在UI模块内,但是随着我们模块的不断增多,如果所有事件都定义在自己的模块内,在后期是很难维护的,我们都不知道一共定义了哪些事件…因此,一个全局的事件管理中心,是很有必要的事件池事件池是实际上保存事件的地方,可以添加或者取消订阅事件。在此之前,我希望我们的委托遵循.NET规范,即应该是如下格式 public delegate void TestEve

2021-04-19 16:01:45 441

原创 07 引用池

引用池,和对象池的概念非常像,但是对象池服务于具体的GameObject对象,而引用池服务于普通的C#类。举个例子,如果打开UI的时候你想传递一些数据,最简单的方法就是class UIData{ //...} main(){ UIData data = new UIData(); OpenUI(data);}这个方法是我在上一节末尾提到的,即定义一个数据类型,然后打开UI的时候直接传进函数里,说实话我感觉这样做…其实也挺好的…很简单直观,感觉也没啥问题…咳咳,但

2021-04-19 14:05:45 175

原创 04 深度缓冲

从二维开始假设有这样一张图片,横轴是X轴,纵轴是Y轴想象一下,假设我们现在是从正面在看这张图,那么如果我们从顶部来看,俯视的看,会是什么样的情况?可能很抽象,尽可能的想象一下,应该是如此,我们看到的应该是图中我画出来的那一条线段。为什么最开始是一段绿色而不是红色?很明显,因为我们是俯视来看的,那么上面的绿色肯定会遮住下面的红色,后面也同理,是什么决定了我们能看到的颜色?是高度,或者说Y的值,Y更大的颜色会遮挡住Y更小的颜色,这就是深度缓冲。那么对于这么一张俯视的图来说,我们需要多少个深度缓冲呢?

2021-04-16 15:41:58 190

原创 03 三角形与光栅化

layout: posttitle: “03 三角形与光栅化”categories: [从0开始的软光栅]tags: [图形学]简单绘制一个三角形上一节末我们已经能够画一条直线了void line(int x0, int y0, int x1, int y1, TGAImage& image, TGAColor color){ // ...}在VS里新建一个geometry.h,然后把代码复制进去,这个头文件里就是一些坐标类型和计算,这个头文件依旧来自最开始介绍的git,你想.

2021-03-28 15:11:01 183

原创 06 UI管理器4

工具类上一节的末尾,我们需要创建很多UI来测试,因为需要很多Button事件,所以我们写了很多函数,然后…然后一个一个拖到了Button上…很明显的能够感到,这个过程是真的很痛苦…这才五六个Button而已,而实际上我们可能需要几十个几百个Button事件,如果我们都采用这样直接拖放的方式…那是真的痛苦…在UI下新建一个静态工具类,就叫UIUtility吧~/// <summary>/// UI工具类/// </summary>public static class UI

2021-03-25 13:43:05 76

原创 05 UI管理器3

数据结构设计我们还不能直接开始设计UI的开闭接口,必须先确定好,应该用什么样的一种格式来储存所有的UI脚本,其实很简单我们能确定一共会有多少个UI吗?这不一定。我们需要随机访问UI吗?一般没这个需求。我们可能会频繁创建和删除UI吗?这倒是有可能的。注意另一个情况,一般来说,我们游戏的UI打开是递进的,关闭UI同样如此,比如说,我们先打开商城,然后购买时弹出确认提示,此时我们应该先关闭确认提示,然后才能关闭商城,是不是很像先进后出的数据结构?那么很明显了,其实没啥特殊的,我们用栈来维护所有UI就行

2021-03-25 13:42:28 77

原创 04 UI管理器2

UI的注册好了,在上一节结尾,我们已经能打开一个UI了,那么我们的管理器完成了吗?是的,完成了…个锤子!最直观的问题是,我们现在打开的UI是固定的,废话,因为Resources加载的路径都被写死了…public void OpenUI(){ /// 路径是死的!! GameObject go = Resources.Load<GameObject>("UI/TestUI"); var prefab = GameObject.Instantiate(go);

2021-03-25 13:41:50 107

原创 03 UI管理器1

理论首先,为什么需要一个UI框架?抛开所有的想法, 假设我们用最最最基础的做法来做一个UI,我们会怎么操作?很简单,作为入门的一个小白,我可能会在场景里拖一个canvas,然后设置他的active为false,并在需要的时候激活canvas,那样就能显示和隐藏这没有问题,毕竟我的第一个UI界面就是这么写的。。。咳咳,但是!但是我们的游戏不可能只有一个界面啊,比如商店、背包、人物属性等等,UI的数量绝对是难以预计的多。。难不成给每一个UI都拖一个canvas?当然理论上这是可行的。。就像你可以把整个游戏

2021-03-25 13:40:43 113

原创 02 一切从管理器出发

万事开头难!想了半天,应该从哪儿开始呢,算了还是别开始了…哈哈开玩笑的让我们先新建一个Unity项目,并给咱们这个框架取一个响当当的名字:SimpleGameFramework,简称SGF(好吧我承认名字很随便,你随意)项目结构:SimpleGameFramework好吧这只是一个毫无看点的空项目…那么我们该从哪儿开始学习呢?在上一篇的结尾我曾经提出过一个想法,即:把系统分为很多不同的模块,每个模块只关心自己的事情。那么很自然的会有一个问题,如果我们的项目有很多模块,那我们要怎么统一管理这些

2021-03-25 13:39:45 74

原创 01 前言

说在前面我的所有博客基本上都只是自己的学习记录,目前也还只是一名学生,并非教程博客,所以非常欢迎大佬们给出意见,他人观看时也不要盲目信从,因为可能存在基础性错误,勿怪什么是框架?在所有事情开始之前,我想问一个问题:框架是什么?我本科是学JAVA的,搞JAVA的同学都清楚,JAVA系的框架那叫一个成熟那叫一个多,虽然我没啥兴趣学,但好歹也在学校的课程安排下使用过很多,但我从来没想过这个问题,什么叫框架?单例模式是框架吗?MVC是框架吗?库是框架吗?System.IO是框架吗?到现在我也没法给出一个

2021-03-25 13:38:06 85 2

原创 02 画一条直线

用离散的思维考虑问题!在现实世界我们用笔画一条直线,那它看起来就是光滑的、连续的一条直线,但在计算机世界,如果我们在屏幕上也画一条直线…好吧那看起来也很光滑连续…但你要知道其实这是因为屏幕分辨率比较高,如果我们不断放大图片…那就会像这样:图一:10%缩放图二:200%缩放好吧这其实是用Excel画的,上面那张图看起来已经有一点棱角了,但你们就当他是光滑的吧!能明白意思就好!计算机世界的图像都是以像素为单位绘制的,放大看肯定是会像图二那样,而不是现实世界的连续直线也因此,像素是没有类似(

2021-03-25 13:34:34 294

原创 01 前言

说在前面!本系列并非是教程,只是个人学习感想,关于图形学,个人是感兴趣的,但也只是感兴趣而已,并没有像大佬们那样学习的很深本系列主要学习自这里,链接里的文章写的很好,但是很多知识谈的太粗略,对于懂的大佬自然懂,不懂的萌新看着会比较吃力本系列不会讲述太细节的图形学基础知识,但能提到尽量都会提,纯萌新的话还是建议先看看Games101的图形学入门课程本系列完全只考虑图形学相关的知识,例如矩阵计算库或者win32等知识都不会涉及,这些会直接调用现成的库准备工作用VS新建一个空的项目

2021-03-25 13:31:23 92

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除