自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 真实感图形学的颜色理论

真实感图形学是在计算机中模拟现实生活中五彩缤纷事物。我们知道在现实中如果没有任何光我们是什么也看不到的,只有当有光照射到人眼睛中,我们才能看到事物。五彩缤纷的现实世界其实是各类事物对光线进行的吸收、散射、反射、折射、遮罩等处理之后产生的颜色效果。在计算机中实现绚丽的场景效果,一般需要知道该场景的光照明物理模型,然后用一个数学模型来表示他,通过计算这个数学模型就可以得到计算机模拟出来的真实感效果。在显示世界中,光的照明效果一般包括光的反射、光的透射、表面纹理和阴影等。一般把已知物体物理形态和光源性质的条

2020-07-03 10:00:07 431

原创 设计模式的七大基本原则详述

单一职责原则:每个类应该专注于做一件事情。里氏替换原则:超类存在的地方,子类是可以替换的。依赖倒置原则:实现尽量依赖抽象,不依赖具体实现。接口隔离原则:应当尽量为客户端提供小的单独的接口,而不是提供大的总的接口。迪米特法则:又叫最少知识原则,一个软件实体应当尽可能少的与其他实体发生相互作用。开闭原则:面向扩展开放,面向修改关闭。组合/聚合原则:尽量使用组合聚合来达到复用效果,尽量少使用继承。继承一定程度上是牺牲了封装性来达到复用的效果的,这样有时是得不偿失的。详细来分析这几大原则:单一职责原

2020-07-02 14:11:49 846

原创 3D模型中的计算机图形学原理

3D模型中的计算机图形学原理在计算机的发展过程中,图形的表示从需要在显示器上画一条直线段开始,进而需要画一条曲线,再划出2D几何形状、再到画出复杂的3D几何。这一系列的发展也引出计算机图形的划时代发展,下面详细讲解一下图形在计算机中的表示方法。图形的表示也是符合一般自然科学的发展路线,同样是从最简单的图形入手。首先是直线段、接着曲线段,有了这两种的表示方法,就可以在计算机上画出简单的平面的图像。画了平面图像就会想到画3D立体的图像。3D图像的由曲面组成。那么相应地就衍生出表示曲面的数学模型。图形学中对

2020-06-29 21:41:26 1893

原创 unity中的Text组件如何获得其中文本的尺寸

获得Text中文本尺寸的方法有两种:(1)比较笨的方法是,预先计算出每个字符的尺寸,比如“Oh我的Baby”这句话,想要知道他的物理尺寸,需要知道每个英文字符的物理尺寸和每个中文字的物理尺寸。可以预先将26个英文字符都测量一下(包括大写字符),中文字符基本上就等于Text.FontSize的尺寸,将这些尺寸数据存到Json文件中,然后解析获得配置字典。然后解析这句歌词。将他转化成字符遍历,依次分...

2019-08-28 20:48:35 4489

原创 KTV歌词显示的控制处理一

接下来几篇博客记述用Unity实现KTV式歌词显示控制。包含的主要内容有整体的逻辑架构介绍,分模块进行分析,效果具体实现方法,关键技术点,与第三方音乐公司联调对接时歌词的校准处理等

2019-08-13 16:54:18 737

原创 协程中排序后,在update函数中实行绑定操作之后显示会乱

在场景中2d背景icon的显示是使用绑定的方式,在m4uscrollviewBinding中是检测Scene2DUnitIcons属性以及时实现更新的。更新的逻辑是放到Update()函数中的。对Scene2DUnitIcons属性的处理是放在协程中进行的,原来的代码是:SceneUnitIcon icon = new SceneUnitIcon(index, unit.id, (int)u...

2019-05-13 15:13:35 224

原创 unity发布程序隐藏任务面板图标

任务面板上的图标的隐藏首先想到能不能直接在BuildSetting中设置,然而并不能。因为他不是unity程序的事情,他是windows的界面操作。这就想到要用windowsAPI。网上查找后发现一个函数:[DllImport("user32.dll")] public static extern IntPtr SetWindowLong(IntPtr hwnd,int _nIndex,i...

2019-05-10 16:21:44 1439

原创 应用程序的登录注册功能

**主要内容:**对于使用Unity开发出来的PC端程序,实现登录注册功能。

2019-05-06 18:24:57 1974

原创 UGUI中随意调整Text中的字体间距

UGUI中是没有可以随意调整字体间的距离的方法,仔细研究一下可以通过控制每个字体的网格顶点位置进行调整字体之间的距离,分析一下最简单情况:输入的文本是单行的,且末尾没有换行符;unity在UnityEngine.UI命名空间中定义了一个BaseMeshEffect抽象类,他提供了一个抽象方法ModifyMesh(VertexHelper vh),使得可以轻松地获得text文本中所有字体 的顶点...

2018-12-22 19:15:44 4013

原创 C#中foreach以及unity协程背后的秘密

1.对于foreach来说我们并不陌生,我们经常要使用它来遍历集合,或者是对象中的集合,那么下面就来介绍一个遍历对象中集合的例子,然后借此解开foreach遍历背后的神秘面纱。using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;...

2018-12-03 20:44:48 520

原创 在角色踢腿达到最高时执行一个操作及在子弹接连几次集中统一个敌人时,敌人能即时重播受伤动画

一.先说第一个问题。问题:有时我们需要控制在角色播放动画的某一刻去执行某些操作,例如在主角挥刀到水平位置时,要创建一个挥刀特效。当角色踢腿达到最高时,要执行一下其他的操作等等分析:这主要是控制动画的执行过程,找到能控制动画播放的属性,同时查看动画播放到指定动作的时间,就可以执行上面要求的操作。解决:我测试了当角色踢腿到最高位置时打印一次“检测成功语句”;在AnimatorStateInfo...

2018-11-13 20:34:58 183

原创 鼠标图标的替换问题

在指定条件下进行鼠标替换;当要求在鼠标覆盖到游戏对象上时才会更改鼠标的图标,但是此时该物体上面挂载有多个collider,比如,一个游戏对象上挂载有一个charactercontroller,还有一个sphereCollider ,sphereCollider是触发器用来检测外来对象的进入,所以他的半径比较大,但是在使用OnMouseEnter()方法进行鼠标覆盖检测时,先被检测到的却是这个Sp...

2018-11-06 01:03:17 404

原创 网易游戏研发工程师笔试题----赛马

该问题的分析其实是挺简单的,题目说赛道无限长,比赛时间无限长,那么该问题就变成了之与速度有关的问题了。又因为各个马的速度都不相同,且开始位置也不相同,这就变成简单的数学排序问题了;分析知:可将马的速度进行排序,如v1,v2,v3,v4······;这个目的是要计算made平均生存量,可以用速度代替马。v1速度最大,在哪都可以生存,所以他的生存概率为1;v2只有在v1后面才可以生存,所以他的生存...

2018-08-09 16:00:10 848

转载 C#反射机制总结二

另外一篇关于反射的文章—————原文如下——————反射的定义:审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等。 System.reflection命名空间包含的几个类,允许你反射(解析)这些元数据表的代码 System.Reflec...

2018-06-29 18:01:43 191

转载 C#中反射机制总结

[整理]C#反射(Reflection)详解 本人理解:装配件:Assembly(程序集)晚绑定:后期绑定MSDN:反射(C# 编程指南)—————–原文如下——–1、 什么是反射 2、 命名空间与装配件的关系 3、 运行期得到类型信息有什么用 4、 如何使用反射获取类型 5、 如何根据类型来动态创建对象 6、 如何获取方法以及动态调用方法 7、 动态创建委托...

2018-06-29 18:00:09 253

转载 协程

本文是个人对Unity协程的一些理解和总结.Unity协程长的有点像线程,但却不是线程.因为协程仍然是在主线程中执行,且在使用时不用考虑同步与锁的问题.协程只是控制代码等到特定的时机后再执行后续步骤.启动协程 Unity 5.x中使用StartCoroutine方法开启协程,其方式有以下几种.//形式一 StartCoroutine(CustomCorutineFn()); St...

2018-06-25 13:31:30 1068

原创 数据库访问技术的总结 一

本文打算对数据库的访问技术,做一个完整的梳理,已被后来需要时查阅。一、嵌入式SQL的处理过程 将书写的SQL语句嵌入到主语言中,主语言一般如c、c++、java等。对于这种嵌入式语言(ESQL),RDBMS的处理方式是采用预编译的方式,RDBMS的预处理程序对主程序的代码进行扫描,识别出其中的SQL语句,把它们转换成主语言调用语句,以使主语言调用语句的编译程序能够识别他们,然后主语言程序将纯...

2018-06-12 19:18:33 8769

转载 设计模式之面向对象七大基本原则

概述 在运用面向对象的思想进行软件设计时,需要遵循的原则一共有7个,他们是:单一职责原则(Single Responsibility Principle)每一个类应该专注于做一件事情。里氏替换原则(Liskov Substitution Principle)超类存在的地方,子类是可以替换的。依赖倒置原则(Dependence Inversion Principle)...

2018-06-10 20:26:27 208

转载 .net framework

.NET Framework 框架的一些简单介绍 20世纪90年代以来出现的3种典型的组件技术:1)OMC(对象组件模型)的CORBA 2)Microsoft的COM/DCOM 3)Sun公司的JavaBeans在2002年,微软发布了.NET框架的第一个版本,声称其解决了旧问题并实现了下一代系统的目的。.NET框架是一种比MFC和COM编程技术更一致并面向对象的环境。它的特点包括:...

2018-06-10 17:29:34 321

转载 SQLsever数据库实例

阅读数:2718 什么是SQL SERVER实例SQL SERVER实例的概念和“类与对象”的概念很相似。可以把SQL SERVER的安装程序看做是一个类,安装过程则是创建对象的过程,创建出来的对象称为“SQL SERVER实例”——即“类与对象”中把类实例化的概念。因此,所谓的“SQL SERVER实例”,实际上就是被安装在计算机上的某个完整的SQL SERVER服务器(或者,为了...

2018-06-06 18:46:00 12913

原创 JSON文件的解析

本文主要记录一下JSON文件解析过程中的两种基本操作方式。 JSON文件的根可以是数组,也可以是对象。接下来就是基于这两种情况进行基本的JSON文件解析。 首先看以数组为根的JSON文件解析: 创建一个JSON文本文件json.txt如下:[ { "id": 1, "name": "天下无双", "damage&a

2018-05-17 15:05:47 44225 3

原创 银行客户一天平均访问时间离散模拟

正如标题所示的意思,该程序的目的是要模拟,银行客户办理业务所花费的平均时间。 该程序是事件驱动程序,按照事件驱动的思路进行。如此,首先需要建立一个事件列表,其中存储着按事件发生的时间顺序排列的事件,根据客户到银行的特点,可以发现,事件分为两种,1、客户到达银行事件。2、客户办理完事物离开银行事件。 为事件链表创建数据类型,数据类型我创建为结构体类型,因为对每个客户来说,一个客户到来就相当于是一...

2018-05-03 22:33:00 388

转载 【Unity3d游戏开发】浅谈Unity中的GC以及优化

Unity GC分析及优化介绍在游戏运行的时候,数据主要存储在内存中,当游戏的数据不在需要的时候,存储当前数据的内存就可以被回收再次使用。内存垃圾是指当前废弃数据所占用的内存,垃圾回收(GC)是指将废弃的内存重新回收再次使用的过程。Unity中将垃圾回收当作内存管理的一部分,如果游戏中垃圾回收十分复杂,则游戏的性能会受到极大影响,此时垃圾回收会成为游戏性能的一大障碍点。下面我们将会...

2018-04-27 12:33:04 438

原创 `vector3.angle(vector3 from,vector3 to)`使用的认知

vector3.Angle(vector3 from,vector3 to)这个方法的意图是求from向量与to向量之间的夹角,并且此夹角的大小为两者之间的锐角,所以,不管什么情况,这个函数返回的值都不可能大于180; 使用这个函数进行控制主角旋转时可以很简单地实现旋转到指定的位置。但是 有一个问题,在以下的代码中,这个函数求得的值,总是在预料之外抖动,如此导致了游戏物体的旋转不可控值;...

2018-04-18 14:13:45 11017 2

原创 事件处理的本质

当在点击一个按钮执行某个操作时,你有没有想过,为什么点击了这个按钮就会执行某个操作,这是为什么?那么接下来就让我来解开这里面的秘密。 用微软中定义的事件函数来说明这个问题是再简单不过的的事情了。 首先,点击按钮是一个事件,也就是说,当你点击了按钮就相当于是触发了一个事件,学过C#窗体编程的同学都知道,事件是其中常用一个属性,按钮的触发就使用了这个属性。 不闲谈了,解决实际的问题。 将按钮的...

2018-04-17 15:17:39 335

原创 记一次线性插值方法(Mathf.Lerp())的使用体会

对Mathf.Lerp()方法使用体会源于一次开发游戏对警报灯闪烁问题进行处理时。 public static float Lerp(float from,float to,float t); 分析一下对线性插值函数的认识,就是在from与to之间根据t值比例乘以两者之间的差再加到from上,依次地逼近to的值,但是永远不可能达到to值;接下来将出示出源码:using UnityEng...

2018-04-10 00:24:23 2710

转载 中年程序员都在想什么?

本文转载自公众号 InfoQ编辑 | 小智 你还记得第一次接触计算机时的情景吗?你还记得写下第一行代码时的年纪吗?你还记得入行时的理想是什么吗?时间改变了你的什么,生活又教会了你什么?要是能重来,你是选李白,还是再选一次程序员? 15 岁那年,你跟着小伙伴们一起,第一次溜进了黑网吧,躲着父母、老师的“追捕”,玩上了红警、魔兽、CS。那天起,你感觉自己好像打开了新世界的大门,原来这方方正正的...

2018-04-09 12:16:14 293

原创 unity3d事件函数的执行顺序

在Unity脚本中,有一些事件函数按照脚本执行的顺序执行。 这个执行顺序如下所述: 编辑器 reset:重置被调用来初始化脚本的属性,当它第一次连接到对象,也是使用重置命令时。 第一个场景加载 当一个场景开始时,这些函数被调用(场景中的每个对象一次)。 Awake:这个函数总是在任何启动函数之前被调用,并且在实例化预制件之后。 (如果游戏对象在启动过程中处于非活动状态,则只有在唤醒之后...

2018-04-06 17:05:23 353

转载 Unity提供的消息推送机制

转载出处:http://blog.csdn.net/liulong1567/article/details/46463353概述 Unity提供的消息推送机制可以非常方便我们的脚本开发,它实现的是一种伪监听者模式,利用的是反射机制。 常用函数 关于消息推送,常用的函数有三个:”SendMessage“、”SendMessageUpwards“、”Broadcast...

2018-04-04 22:00:13 1369

原创 使用ASP.NET创建Web的过程

动态Web开发技术: 1.CGI(common Gateway Interface公共网关接口) 通过CGI借口,服务器根据客户端(浏览器)传过来的请求运行相应的CGI程序,将执行性的结果再返回给浏览器,(此处浏览器的请求就相当于是浏览器访问一个页面的操作,而运行CGI程序执行的结果也就是生成相应的网页返回给浏览器)。CGI技术非常流行具有很好的跨平台性。CGI程序是一个独立的可执行程序,所以...

2018-04-01 22:54:56 354

原创 C#操作字符串以及正则表达式的用法总结

string是C#的基本类型,System.String是一个类库,两者本质上是没有什么差别的。编码时使用string时系统会自动将其变换成String类型,多进行一次变换,所以在编码时最好用后者。格式化字符串有两种方法: public string ToString(string format);//用来将对象转化成format格式的字符串 public static string Foma...

2018-03-25 01:55:34 3038

转载 is&as关键字比较

is关键字用于检查对象是否与给定类型兼容。注意了,这里的is并不是“是”的意思,而是“兼容”。也就是说,如果被检查对象能够强制转换成给定类型并不发生异常,那么表示它们类型兼容。如果所提供的表达式非空,并且所提供的对象可以强制转换为所提供的类型而不会导致引发异常,则is表达式的计算结果将是 true;否则,发生异常时is表达式将返回false。is的使用方式: if (obj is MyO...

2018-03-23 19:51:32 456

原创 vs2017类库的创建以及调用

文件——新建——项目,点选Windows经典桌面——类库,在下面的解决方案里有{创建新解决方案、添加到解决方案、在新实例中创建},如果想在已创建的项目文件中使用该类库,那么就选择添加到解决方案,这样你在你的项目文件夹里就能看到你创建的这个类库了。 以上内容处理完成后点击确认进入类库编辑界面,进行类的编写,类库编写完成后需先进行编译,点击工具栏中 生成——生成My_Library(这是我创建的类库...

2018-03-23 18:24:42 12781 4

原创 C#值类型和引用类型的比较

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace _3._2 { class Person { public string fullName; ...

2018-03-23 18:10:22 201

原创 详解摄像机平滑跟随物体算法(smooth follow)

using UnityEngine; using System.Collections;public class SmoothFollow : MonoBehaviour {public float distance = 10.0f;//目标物体与摄像机之间在世界坐标基础上保持水平上的距离public float height = 5.0f;//摄像机与目标物体之间的高度差publi...

2018-03-10 00:04:34 4218 5

原创 unity发布android版本游戏时报错

发布android版本游戏时出现如下报错: 这就是说是player settings处出现错误,做如下修改即可: 如此便可正常发布运行;

2018-03-07 19:43:24 636

原创 UGUI开发简单音乐播放器之二

上一篇将音乐播放器的第一大部分仔细地分析了,这一篇我接着将音乐播放器的下篇说说。 下面来看看这一部分的层次视图: MusicList是一个Image他是整个编辑界面的显示区域,Title是一个Image他是歌曲显示目录区域,BackMenuBT是一个按钮,EditBT是一个按钮,Panel是一个显示屏,即一个显示区域。list是一个空对象,播放器运行后所有的歌曲都会创建到这个里面。 下面逐

2017-12-28 22:33:17 546

原创 UGUI开发简单音乐播放器之一

如下先展示音乐播放器的两个主要界面: 主页面: 音乐列表: 正如上面上所示,这个音乐播放器中包含有的按钮有:播放按钮,上一首按钮,下一首按钮,随机播放按钮,重复播放按钮,播放界面与音乐播放界面的切换按钮,声音控制按钮。这些便是在这两个主要界面的主要按钮。 下面再看对于声音控制按钮对

2017-12-23 01:13:13 786 3

原创 c中字符串与c++中字符串的不同

最近用c++写程序时遇见了一个很有意思的问题,记录一下。c中的字符串与c++中的字符串居然不同,大家不要笑我知道他当然不同,c++中可以把字符串作为一个类对象来看待,而c中把它看做一个普通的在内存里依次排列的字符集合。我说的自然不是这个不同,我关注的是在c++编译器的情况下不能像在c编译器处理字符串的方式进行处理。大家都知道在c中我们要接收一个字符串是可以用一个字符指针去指向它例如: 在c

2017-05-21 13:03:03 637

原创 简单工厂模式与纯虚函数的应用

先简单对虚函数与纯虚函数做一下介绍: 两者都是为了解决程序的动态多态问题而设计的所以都可以达到对函数运行多态问题的解决,另外值得一提的是两者的虚析构函数与纯虚析构函数的定义将使派生类中的析构函数也都为虚析构函数,由此可实现析构函数调用时的多态。下面说两者的不同之处。 虚函数是处于一个可以实例化对象的类中,而纯虚函数则是处于一个不可以实例化对象的抽象类中,其派生类只有把所有的纯虚函数都重载之后才可

2017-05-19 01:18:21 842

空空如也

空空如也

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

TA关注的人

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