自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 EasyTouch简单使用

对于游戏当中的虚拟摇杆,虚拟按键  触摸,拖拽,这些动作都可以使用EasyTouch轻松的实现在EasyTouch4.0版本,使用EasyTouch的方法  :1.导入插件到工程目录下  2.在场景中右键新建EasyTouch用于侦听游戏中的操作  3.新建空物体并绑定脚本   4.在脚本当中输入如下代码:using UnityEngine;using HedgehogTeam.E...

2019-01-06 22:10:22 472

原创 关于游戏中的Ambient Occlusion 环境光遮罩(AO)

Ambient Occlusion环境光遮罩简称AO 讲述AO的时候需要了解下关于游戏中光照的知识原来的游戏当中都是直接光照来绘制游戏当中的场景   直接光照指光源直接打在物体上,然后由物体反射到人眼当中。随着玩家对于游戏中的画面要求越来越高,开始在计算直接光照的同时考虑间接光照从而实现全局光照的效果,从而实现更加逼真的效果。直接光照:指光线照在物体上然后直接反射人眼当中间接光照:指光...

2019-01-05 00:39:08 11214 2

原创 Unity自动寻路之导航

现在游戏中的自动寻路基本就是两种做法 A*算法  和Unity中的导航系统自动寻路导航的步骤1.对场景进行烘焙2.为寻路物体添加NavMeshAgent组件3.为寻路物体添加脚本  设置寻路物体的目标点触发寻路的方式在学习导航之前  必须先学习bake(烘焙)烘焙其实就是将模型上的一些信息记录到模型上,比如光照信息等   那么为什么需要进行烘焙,由于在加载场景的时候对于模型...

2018-12-30 17:12:19 1912

原创 游戏中自动寻路一---------------鼠标拾取

思路:要使得物体移动到鼠标点击的位置  无非两步:1.获得鼠标点击位置世界坐标  2.使用合适的移动方法移动到目标位置实现思路:可以行走的条件:物体要移动那么必须保证鼠标点击的地方为可行走的区域,也就是可以发生碰撞      检测是否为行走面那么可以使用射线检测       由于鼠标坐标为屏幕坐标需要转换为屏幕坐标    判断是否为物理运动选择合适的移动方法代码如下:if (Input...

2018-12-29 16:21:54 514

原创 Unity中移动方法总结(主要是平滑移动)

游戏制作过程中控制物体移动是很常见的功能  但是有时候在用的时候总不能很快的用到合适的方法,现在总结下所有的移动方法(这里的运动都是指平滑运动不包含瞬间移动)移动物体分为两种方式:1.非物理移动(没有力速度等因素)只需要改变物体的位置Position即可   3.物理运动,这个时候就需要使用Unity中的物理系统运动方式:1.朝一个方向运动2.向着目标点移动(一般是鼠标点击点)3.由A点到...

2018-12-29 16:11:41 23913 1

转载 Unity中的5中移动物体的方式

非物理移动1.直接位置自加2.Transform.Translate物理方式移动1.Rigidbody.MovePosition2.Rigidbody.AddForce给我i物体添加力的效果3. Rigidbody.SetVelocity直接给物体设定速度...

2018-12-28 23:08:23 211

原创 关于C#中的(int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别

(int),int.Parse(),int.TryParse(),Convert.ToInt32()其实都是将其他的数据类型转换为int类型。转换类型无非有三种:空值:NULL数字类型:(int,double,short,long,float)字符串类型:stringNull转换为int:只能用Convert.ToInt32()方法默认的将Null转换为0String类型直接使用int...

2018-12-27 22:36:57 288

原创 工作中的那些坑儿-------------RenderTexture的渲染质量问题

无论在制作背包系统还是其他的UI系统中,想要实现3D游戏物体在UI上的显示那么RenderTexture都是一个很好的工具。但是在使用RenderTexture,尤其是把Render渲染到RawImage上的时候,image的渲染质量问题都是一个亟需解决的问题。解决方案:              1.通常都是通过修改RenderTexture的size大小,从而提高渲染质量。  ...

2018-09-09 22:45:35 5132

原创 C#实例化的执行顺序

在没有继承关系的时候:1.静态字段2.静态构造方法3.实例字段4.实例构造方法存在继承关系的时候1.子类的静态字段2.子类的静态构造方法3.子类的实例字段4.父类的静态字段5.父类的静态构造函数6.父类的实例构造函数7.子类的实例构造函数当父类中的构造方法中的方法体如果被子类重写的化那么会等子类中的重写方法执行完之后,才会执行父类构造函数例子...

2018-08-21 09:57:26 504

转载 C#中的构造函数,私有构造函数,静态构造函数以及构造函数的执行顺序

1.默认构造函数:如果类中没有定义构造函数那么程序会默认的为类创建一个无参数构造函数用以对类进行实例化,如果有构造函数的话,那么程序就不会创建默认构造函数2静态构造函数,不能访问实例成员,只能用来初始化一些静态字段或者属性,仅在第一次调用类的任何成员时自动执行,不带访问修饰符,不带任何参数,每个类只能有一个静态构造函数,但可以同时还有一个无参实例构造函数,3.私有构造函数:把访问的属性设置...

2018-08-21 09:48:27 2029

原创 优化当中的LOD和MipMap

LOD:Level Of Detial 多等级细节主要是在Mesh优化的时候,为了减少渲染的三角面片数量而产生的一项技术LOD技术产生的原因:对于普通的没有添加LOD的Mesh进行渲染你的时候,不论Mesh与当前摄像机的距离是多少,都会渲染出相同的效果,相同的顶点数和面片数。为了实现当离摄像机的距离距离较远的时候,减少渲染的顶点数和面数,从而提高游戏的性能,而当和摄像机的距离比较近的时候就...

2018-08-09 14:38:52 3526

原创 C#当中的ArrayList与List的区别

ArrayList与List的区别主要是在于性能上ArrayList属于非泛型其中存储的类型默认是Object的 所以在进行数据的存储以及遍历和输出的时候就会进行装箱和拆箱的操作而装箱和拆箱的操作是很耗费性能的。而List作为泛型类 可以存储各种类型的资源在存储上是确定了具体的数据类型的,不需要进行装箱操作  从而节省性能   所以通常在实际的引用当中都是使用List的。...

2018-07-25 15:28:16 809

原创 内存分区

值类型的都存储在栈当中,其中的引用类型的指针存储在内存中的堆中,指针指的具体对象在堆中。内存的五大分区:1.栈:是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。2.堆:就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后...

2018-07-25 09:12:48 211

原创 Unity当中的几种坐标系的讲解

无论是在Unity当中还是在图形学当中都离不开矩阵的转换。下面先来讲解下主要的坐标系首先是世界坐标系:这个比较好理解,就是一个物体所在空间中的位置信息,反应了物体在空间当中的绝对位置。本地坐标系:表示物体相对于自己的位置信息。比如物体的前后左右旋转以及移动这个前后左右都是相对于物体本身坐标系的。惯性坐标系:因为在进行物体到世界坐标系的转换时候,既需要平移同时需要进行旋转,为了简化这种变...

2018-07-24 11:45:08 804

转载 C#中委托和事件以及委托书写一二三

声明:这是一个委托和事件学习路线的博客,内容转发自大牛,文章也很通俗易懂,读完之后就可以理解委托和事件并会使用!下面为大牛文章网址:大白话系列之C#委托与事件讲解(序言)大白话系列之C#委托与事件讲解一大白话系列之C#委托与事件讲解二大白话系列之C#委托与事件讲解三大白话之C#委托与事件讲解大结局委托定义一二三第一步:声明一个委托及该委托变量public del...

2018-07-17 19:12:33 452

原创 Unity制作红色射线

1.在发射射线的位置创建一个空物体用于存储发射点的位置信息2、制作射线,为发射射线物体添加LineRenderer组件  制作Material材质并把其类型改为Particles/Addictive模式并为其加颜色把纹理放到LineRenderer的Material中,修改LineRenderer 的Width属性改成细线。3、写脚本发射射线public Transform rayPos;publ...

2018-07-04 14:24:58 3176

原创 UnityAPI之Rigidbody类

RigidBody类的功能是用来模拟GameObject对象在现实世界中的物理特性,包括重力,阻力,质量,速度等。对于RigidBody对象的赋值通常都放在脚本的OnFixedUpdate()方法中。   涉及的属性有collissionDetecionMode、drag、inertiaTensor、mass和velocitycollisionDetectionMode属性:碰撞检测模式drag属...

2018-07-04 14:13:32 3785 1

原创 UnityAPI之Random类

Random类是Unity中用于产生随机数的类,不可实例化,只有静态属性和静态方法。涉及的静态属性有insideUnitCircle属性,insideUnitSphere属性和onUnitSphere功能相近insideUnitCircle属性:圆内随机点,此属性用于返回一个半径为1的圆内的随机点坐标,返回值为Vector3类型insideUnitSphere属性:返回一个半径为1的球表面的随机点...

2018-07-02 16:15:35 1487

原创 UnityAPI之Object类

Object类Objectl类是其他类的基类,比如GameObject,Material、Compenont,Shader等下面主要介绍Object类的一些实例方法和静态方法。1.Object类实例方法:a、GetInstanceID方法:Object对象IDObject的静态方法:在Object类中有很多的静态方法:Destroy方法、DontDestroy方法、FindObjectOfType...

2018-07-02 15:47:21 3878

原创 UnityAPI之Mathf类

Mathf类是Unity中的数学类,只有静态属性和静态方法,不可被实例化。1.Deg2Rad:表示从角度到弧度常量 其值为(2*Pi)/360=0.01745329Red2Deg:表示从弧度到角度Infinity:表示正无穷大静态方法:1.Clamp方法:返回有限范围值 Clamp(float value,float min,float max)Clamp(int value,int min,in...

2018-07-02 15:20:30 1311

原创 UnityAPI之Time类

最常用的两个时间:1.realtimeSinceStartup:程序实时运行时间,在游戏当中用Time.time表示,表示程序从开始到现在的时间。2.Time.DeltaTime:表示两帧之间的时间间隔,在游戏当中用Time.deltaTimeTime类其他常用静态属性captureFramerate属性:用于返回和设置游戏的帧速率。SmoothDeltaTime:平滑时间间隔,用于返回Time....

2018-06-29 16:26:31 462

转载 很不错的性能优化文章

本篇文章转自点击打开链接性能优化,进无止境---内存篇 无论是游戏还是VR应用,内存管理都是其研发阶段的重中之重。然而,在我们测评过的大量项目中,90%以上的项目都存在不同程度的内存使用问题。就目前基于Unity引擎开发的移动游戏和移动VR游戏而言,内存的开销无外乎以下三大部分:1.资源内存占用;2.引擎模块自身内存占用;3.托...

2018-06-27 16:16:46 189

原创 HTC Vive 通过Unity实现手柄控制移动和拾取效果

1、打开Unity,导入SteamVR插件2、删除场景中自带的摄像机,把SteamVR中的CameraRig拖到场景中。如图2.1 其中Controller为手柄 分左右手柄 Camera指头盔,其中Camera(eye)来控制视角  Camera(ears)来侦听游戏当中的声音。3.为其中的一个控制器添加脚本组件 ,取名为MoveControl4.在MoveControl中书写控制移动脚本 ...

2018-06-27 15:40:40 11619 4

转载 HTC Vive Lighthouse工作原理

在虚拟现实(VR)这样一个新兴产业里,获得了最多注目的自然是明星公司Oculus。很多人都体验过Oculus Rift,知道VR头显会是一种什么样的体验。但是由Valve和HTC合作而开发的Vive,就没有那么多人体验过了。最近笔者有幸接触到了HTC Vive,尽可能的向大家解释Vive到底在体验上,与Oculus有何区别,以及它有什么过人之处。    说到Vive就不得不提到Valve。核心游戏...

2018-06-27 14:50:09 2339

转载 VR沉浸感和交互作用原理

本文转载自点击打开链接1. VR沉浸感和交互作用产生的原理:在之前,我们观看一个虚拟的创造内容是通过平面显示器的,52VR上次发布过一篇文章《一张图让你认识VR》,在其中,你会看到很多10年前的虚拟现实装备,他们基本是平面显示器,或者将产生的画面投影到一个弧形甚至是球形屏幕上;或者在这些屏幕上叠加左右眼分别的图像,从而产生更加立体的效果。而这类装置往往很大型,也很昂贵。而近几年发展起来的VR头戴显...

2018-06-27 14:22:44 5195

原创 虚拟现实开发之HTC Vive

开箱配置:主要配置:一个头戴式显示器、两个单手持控制器、一个能于空间内同时追踪显示器与控制器的定位系统(Lighthouse)以及各种电源线和HDMI是(High Definition Multimedia Interface)的缩写,意思是高清晰度多媒体接口,是一种数字化视频/音频接口技术。连接HTC Vive1.放置Lighthouse 就是下面的两个立方体盒子并使得两个定位器相对,用一根线来...

2018-06-27 11:31:23 895

原创 碰撞检测中高速物体直接穿过包围盒问题

在游戏开发的过程中会出现物体直接穿过碰撞体的情况:1.由于碰撞物体太薄了2.由于物体的移动速度太快分析原因:由于在Unity中的碰撞检测是有时间花费的,而每帧之间的时间间隔大概是0.02s如果速度太快或者是碰撞物体的太薄了,下一帧可能物体已经穿过了碰撞体,没有来的及进行碰撞检测。如图:在前一帧时还在碰撞体的左边在下一帧已经在碰撞体的右边,这个时候就会高速的穿过,碰撞检测每检测到。解决方案:通过射线...

2018-06-22 16:15:19 1924

原创 游戏开发中射线检测

射线检测:射线检测就是从一个点或者一个方向,向一个方向发射一条射线,当有碰撞体的时候就停止会返回碰撞体信息,否则继续沿着这个方向发射。注:在Unity中的射线检测其中的射线是在世界坐标系当中。射线检测在游戏当中的应用:1.实现鼠标拾取实现方法:通过摄像机向鼠标的目标点发射射线,如果发生碰撞并且鼠标点在人物可移动空间时,此时可以返回碰撞信息,得到碰撞点也就是鼠标的点击点,之后转换为世界坐标后控制人物...

2018-06-22 14:58:22 1182

原创 单例模式

1.单例模式:单例模式是软件工程中的一种设计模式,在一个核心结构中只存在一个类,通过单例模式可以保证一个场景中一个类只能被实例化一次并且易于被访问,从而方便实力个数的控制并且节约资源,如果一个类只需要被实例化一次,那么单例模式就是最好的选择。2.为什么使用单例模式:因为有的时候是需要只保证一个类只实例化一次,比如电脑的程序,你可以同时运行几个程序,但是每次当前程序只能是一个。所以这个还是很有必要的...

2018-06-22 13:44:35 146

原创 C#入门之数组

数组的定义方式:数据类型[] 变量名初始化:方式一:如int[] scores={23,23,2,32,3,1,44,223,12,12,}方式二:int[] scores=new int[10]; 里面的每一个元素都按照类型的默认值来赋值方式三:int[] scores=new int[10]{1,1,11,1,1,1,1,11,1,1}访问:访问的时候只需要 变量名[索引号] 如:scores...

2018-06-22 10:59:54 157

原创 C#入门之结构体

结构体的定义模板:Struct  <typeName>{    typename variableName;     typename variableName;    typename variableName;......}调用的时候先声明变量通过变量来赋值例如:struct Student{   String name;    int  num;    float score;}...

2018-06-21 23:22:21 78

原创 C#入门之枚举类型

枚举类型的模板:enum <typeName>{  <type>,  <type>,   <type>,.....}其中typeName是变量名,其中的各种状态通过typeName调用。如:enum GameState{   Start,   Stop,   Failed,  Success...

2018-06-21 22:51:48 114

原创 Unity中音效的添加

场景中添加音效:1.添加音源AudioSource(可以理解为播放器)定义其属性  并对其属性初始化2.添加音效AudioClip(可以理解为磁带)定义其属性 并对其属性初始化3.写控制播放的函数写播放音效的判断函数    a.需要先把音效给音源b.设置播放的模式 如loop循环播放c.播放Play()函数   Pause()暂停函数...

2018-06-21 09:44:55 8931

原创 C#入门学习之从程序中输入文本

Console类是BCL中的类,实在System命名空间中using  System;Console.Write("")/System.Console,Write("");WriteLine("")会自动的添加换行符

2018-06-20 23:39:44 232

原创 C#入门学习之标识符

C#中标识符的命名规则:1.标识符必须以字母数字下划线组成2.数字不能放到标识符的首位3.@字符必须放到标识符的首位4.标识符不能和关键字重名命名规范:Camel命名法首个字母都小写其余的字母首字母大写(enemyHp)Pascle命名法每个字母的首字母都大写(EnemyHp)变量使用Camel命名法  方法和类使用Pascle命名...

2018-06-20 23:03:55 540

原创 C#学习之计算机基本知识

Home键:光标到本行代码的最前面End键:光标到本行代码的最后面Ctrl+A:全选Ctrl+S:保存Ctrl+C:复制Ctrl+V:粘贴Ctrl+X:剪切Ctrl+Home:定位当前代码第一个位置Ctrl+End:定位当前代码最后一个位置F5:输出后会自动关闭Ctrl+F5:输出后不自动 Delete:删除后面字符Backspace:删除前面字符insert:切换插入模式和覆盖模式输入法全角字符...

2018-06-20 22:48:40 168

原创 C#基础篇之C#与.NET框架

微软平台编程:第一阶段:VB C C++第二阶段:Win32API MFC COM第三阶段:.NET.NET框架编译过程:具体的过程:CLR:

2018-06-20 22:36:58 643

原创 Unity中的光照(未完待续)

Unity中内置了四种形式的光源,分别为点光源,平行光,聚光灯光源和区域光源Point Light 就是一个向四周发射光线的一个点,类似于现实中的灯泡。Direction Light 可以很好的模拟太阳,发出的光线都是平行的。点光源的基础知识:参数:Type    光源类型,可以在四种形式的光源之间进行切换Range:光源的光照范围      Intensity:光照强度     Shadow T...

2018-06-19 23:12:51 291 1

原创 Unity入门之游戏对象和组件

GameObject(游戏对象)游戏当中的每个Object(对象)都是游戏对象,游戏对象不做任何事,需要通过各种属性来充当不同种的角色。游戏对象可以理解为一个容器,刚开始只是一个空壳,可以容纳各种东西,如果理解游戏对象需要先了解组件。可以想象游戏对象是一口锅,而组件可以理解为各种的食材,把不同的食材放到同一口锅当中可以做出不同的菜。其中每个游戏对象都有Transform组件,这里包括了游戏对象的位...

2018-06-19 22:19:38 1390 1

空空如也

空空如也

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

TA关注的人

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