- 博客(37)
- 收藏
- 关注
原创 关于数据结构和算法
数据结构和算法理解程序=数据结构+算法数据结构分为:逻辑结构和物理结构逻辑结构:指反应数据结构元素之间逻辑关系的数据结构 物理结构:又叫存储结构通俗讲:物理结构是数据在存储器中存放形式针对内存而言逻辑结构分为四种常见集合结构:同一个集合,他们之间并列关系 线性结构:一对一的相互关系 树形结构:一对多的相互关系 图形结构: 多对多的相互关系物理结构分为顺序存储结构:是...
2019-02-22 21:30:54 278
转载 Unity中常见的设计模式
1. 单例模式概念很简单,保证一个类仅有一个实例,并提供一个访问它的全局访问点。我就提供两段代码就好了,在游戏当中,有两种类,一种是不继承MonoBehavior,另外一种是继承它的,首先看不继承的,Class Singleton{ Static MySingleton; // 单件对象,全局唯一的。 Static Instan...
2018-03-12 17:24:41 568
转载 Unity-物理系统-材质
Physic Material物理材质物理材质用来调节碰撞物体的摩擦力和弹力效果。要创建物理材质从Project面板中->Create->Physic Material。然后从Project面板中拖拽物理材质到场景上物体的碰撞器Material属性上。如图 所示。Physic Material属性:1、Dynamic Friction:动态摩擦力 通常值在0到1之间。值为0的效果像冰,...
2018-03-03 17:02:26 1709
转载 NGUI-位图字体及图文混排
图文混排介绍图文混排通常用于聊天模块,在文字中夹杂表情图片。位图字体制作1)图文混排的制作,首先要制作位图字体。首先得下载一个位图制作工具Bitmap font generator,可以点击这里下载2) 将要作为位图的文字写入到一个文本文件中,以UTF-8编码格式保存或在BMFont中进行选择。亮色的字是制作位图的文字。3)通过Edit菜单,选择Select Chars form File选中之前...
2018-03-03 17:02:03 785 1
转载 Unity-物理系统-射线
射线前面章节讲过,刚体与刚体、刚体与碰撞器之间可以发生碰撞,开发者可以通过碰撞器或触发器进行碰撞或触发检测。Unity还为广大开发者提供了一种射线的检测方式,射线是3D世界中一个点向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射 。此功能通过物理类中的raycast函数来实现。射线应用范围比较广, 多用于碰撞检测(如:子弹飞行是否击中目标)、角色移动等 等。Unity...
2018-03-03 17:01:35 1357
转载 Unity-动画系统
在Unity引擎中,大致上可以分为两大类动画控制系统,分别是Animation和Mecanim动画系统.。Aniamtion是低版本中的动画控制系统。而Aniamtor是Unity新的动画系统Mecanim动画系统的核心组件.通过它能够实现对动画的重定向,在后面的课程中,将会详细讲解,本课的内容为Aniamtion动画的控制。模型导入的常见问题1.模型材质或纹理丢失当模型中出现紫红色区域或模型没有...
2018-03-03 17:01:18 1669
转载 Unity-动画系统-AniamtionEvent
通过AnimationEvent监测动画结束AnimationEvent的添加方法1.通过界面操作来添加事件选中具有Animation动画组件的模型,并拖动到场景中。模型具有两个动作,分别是pose 和 wait按快捷键Ctrl+6 打开动画编辑器,通过顶部的图标来可以为选中的帧添加一个事件。添加出事件后,在关键帧顶部,会显示出一白色的小块,说明此处已经添加了事件,并且会弹出下面的一个弹窗,此时还...
2018-03-03 17:00:59 1571
转载 Unity-动画系统-Animator基础
Mecanim动画系统简介 Unity 4.0于2012年11月15日正式发布,该版本最大变化之一就是引入了新动画系统——MecAnim,通过MecAnim新的动画系统,开发者可以非常方便地实现角色的各种动画的控制。Mecanim具有以下特征:● Mecanim动画系统是通过Avatar这个代理来实现设置角色动画中的骨架和蒙皮的。● 开发者可以利用角色动画的重定向功能(Retarget...
2018-03-03 17:00:45 1310
转载 Unity-动画系统_Avatar系统
利用Avatar系统,我们可以通过对骨胳操控实现动画的重利用效果,这也就是Mecanim系统中的动画重定向功能。Avatar工作原理对于人类角色来说,都包含着相同或者类似的骨骼。而Avatar,可以对角色中包含的骨骼结构或者角色模型进行分析与识别,并与Mecanim中已有的标准人类骨骼进行对比,并进行标示。它是一个接口,通过它可以被Mecanim系统所识别,成为一种可被Mecanim系统所识别的通...
2018-03-03 17:00:32 9596
转载 Unity-动画系统-Animator动画分割与设置
对于模型动画的分割,不论Animation,还是Animator,在动画的分割上稍有一些不同,但整个操作的思路是一致的,希望大家在本课内容的学习过程中与Animation的动画分割方式进行相应比较。分割动画导入的一个角色资源,可能只有一个角色模型资源,也可能包含动画资源。动画资源也分两种情况:1. 各个动画部分都是独立的2. 所有的动画集成在一个动画片段中。注:第2种情况,需要在导入资源之后手动分...
2018-03-03 17:00:13 14270 1
转载 Unity-动画系统-Animat
Root Motion根运动Root Motion根运动是一个非常重要的概念。它的原理是:当身体发生了变换,从而引发身体的重心发生改变。即改变了重心或者说身体的方向。这样在地面上则产生了方向上的投影。角色身体的上半身也下半身相对于角色T-pose进行平均计算而产生一个方向矢量。身体变换和方向则在每一帧中都会把变化计算出来,并都存储到动画片段 (Animation Clip) 中。最后施加到游戏对象...
2018-03-03 17:00:02 1599
转载 NGUI-跟随
UI跟随实现原理1)通过NGUITools中的FindCameraForLayer(layer) 渲染跟随目标的摄像机。以及渲染当前UI的摄像机。 //这里是通过物体的层获得相应层上的相机worldcamera = NGUITools.FindCameraForLayer(TargetObject.layer); //通过脚本所在物体的层获得相应层上的相机 uiCamera = NGUI...
2018-03-03 16:59:12 412
转载 Unity-导航寻路-OffMeshLink
在3D游戏中,有时,场景中的静态几何体的导航网格不是全部相连在一起的,从而使代理不能从世界场景的这一部分移动到另外的部分,此时需要运用到Off-MeshLink来解决此类问题。案例Off-MeshLink组件用于手动指定路径线路。可以实现跨越鸿沟或者往高处跳跃而上的效果。1.创建场景。如图 所示。inv对象中有2个Cube,分别代表地板和大方块高墙。再创建2个Cube,分别命名为:start po...
2018-03-03 16:58:41 2702
转载 Unity-导航网络寻路-基础寻路
能够利用NavMesh寻路系统完成角色的自动寻路引语寻路是游戏中经常使用到的一项技术,3D游戏世界中用于实现物体能够自动寻找一条路径到达目的位置的一项技术。,它将游戏场景中复杂的结构组织关系简化为带有一定信息的网格 ,在这些网格的基础上通过一系列相应的计算来实现自动寻路。自动寻路就是AI中的一个十分重要的分支,其算法异常复杂。Unity中提供的这套非常成熟的组件来为我们解决这一难题。在Unity中...
2018-03-03 16:58:30 1408
转载 unity3d 简单的委托模式
1.先写一个委托类,所有的委托都写在这个类里。[csharp] view plain copypublic class MyDelegate { public delegate void LogDelegate(string log); //定义 委托名为LogDelegate,带一个string参数的 委托类型 public static LogDelegate ...
2018-03-03 16:58:15 365
转载 Unity3D中Layers和LayerMask
Unity中是用int32来表示32个Layer层。int32表示二进制一共有32位(0—31)。在Unity中可编辑的Layer如下图所示:在Unity中每个GameObject都有Layer属性,默认的Layer都是Default。在Unity中可编辑的Layer共有24个(8—31层),官方已使用的是0—7层,默认不可编辑!LayerMask实际上是一个位码操作,在Unity3D中一共有32...
2018-03-03 16:57:50 443
原创 Unity协程简单使用
public class Coroutine : MonoBehaviour{ private int Ret = 0; //协程的简单写法 void Start() { //开启Test1协程 StartCoroutine(Test1()); //开启Test协程 StartCor
2018-02-04 18:45:01 967
转载 Unity-Mathf运算
Unity Mathf 数学运算Mathf.Abs绝对值 计算并返回指定参数 f 绝对值。 Mathf.Acos反余弦 static function Acos (f : float) : float 以弧度为单位计算并返回参数 f 中指定的数字的反余弦值。 Mathf.Approximately近似 static function Approximat
2018-02-03 21:44:44 340
原创 Unity-箱子在指定位置随机出现-预设
//总结:预设,刷箱子 进行拾取箱子制作//1,吧脚本挂载摄像机上就可以 刷箱子希望在某一个区域刷所以先建一个立方体Cube 在这个区域内(立方体)随机产生箱子 Cube上的Mesh Collider去掉//2,将平面Cube名字更改为CreateBoxPlanepublic class TestSxeneCtrl : MonoBehaviour { //先定
2018-02-03 21:18:27 4764 1
原创 Unity触发及碰撞
//总结:碰撞所需要的条件// 1. Collidr和Collider 所在的层能够碰撞或触发// 2, 其中一个物体必须有刚体// 3,碰撞组件上Is Trigger是碰撞是否触发的意思//碰撞器:Box Collider 盒碰撞器、Capsule Collider 胶囊碰撞器、Mesh Collider 网格碰撞器、Sphere Collider 球碰撞器 等等这一类组件。
2018-02-03 19:54:18 583
原创 控制角色点击屏幕可以前后左右移动及缓慢转身
using System.Collections;using System.Collections.Generic;using UnityEngine;public class jsyidong : MonoBehaviour { /// /// 移动的目标点 /// private Vector3 TargetPos = Vecto
2018-02-02 18:51:46 4737
原创 Unity-点击屏幕进行移动
Unity中实现点击屏幕进行移动1,首先获取点击事件 是在void Update里每帧都要监测Input.GetMouseButton(0) 是输入鼠标抬起事件 0鼠标左键 1鼠标右键 2鼠标中键Input.touchCount==1 移动平台 如手指触摸屏幕 1个手指1 2个手指2 3个手指32,点击事件在什么位置 1>首先在Hier
2018-02-01 16:43:49 7974
转载 常用组件及系统资源
熟练掌握游戏对象的创建(3D/2D)掌握四种灯光的特性及使用场景掌握三种贴图的用途TextureRenderTextureMovieTexture摄像机Camera天空盒制作及添加游戏对象创建灯光贴图TextureRenderTextureMovieTexture天空盒引言如何创建一个就基本游戏物体,这些游
2018-01-31 18:03:15 2608
原创 Unity介绍空物体及组件
介绍空物体1.创建空物体就是在Hierarchy面板创建CreateEmpty GameObject空物体2.每个物体默认就有Transform组件也可以表示物体3.可以附加各种其他组件,附加不同组件就有不同功能4.不同物体有不同功能,就是它挂载了不同的组件介绍组件Transform组件position 位置坐标 Rotation 旋转坐标 Sc
2018-01-31 17:55:12 4407
转载 NGUI拖动DragDrop
拖动的实现如果实现一个UI的可以拖动,只要在需要拖动的UI元素上添加上BoxCollider和UIDragAndDopItem便可以实现拖动。如何处理拖动和释放如果对拖动过程进行操作,那我们就需要新建类,并集成UIDragDropItem类,在新类中通过重写相应的方法来实现。在我们拖动过程中到底发生了什么事情,有哪些方法被调用了呢?下面是拖动过程中调用的方法
2018-01-31 17:55:01 1191
原创 Unity-project结构和Hierarchy结构
Unity项目中Project结构Script 角色目录 Role角色控制器目录 FSM有限状态机目录 UI UI目录 Utils 工具类 辅助类目录plugins/Android/Ios/PC 第三方插件目录 分平台的Resources 预设目录 EffEct
2018-01-31 17:26:14 1165
转载 NGUI滚动试图制作ScrollView
滚动视图介绍通常要显示的内容,不能一屏显示地,我们可以将显示的内容采用滚动的形式进行显示,这样的效果实现在NGUI中能够使用ScrollView组件进行实现。下图便是一个例子。滚动视图的制作1) 创建一个Panel作为整个滚动区域的容器,并添加上ScrollView组件UIPanel重要属性cs Alpha:面板的透明度 Depth:
2017-12-21 19:49:56 496
转载 NGUI下拉列表PopList
下拉列表简介下拉表是通过用户点击后,罗列一些选项供用户选择,最终把选中的项显示出来。Unity中也有使用,例如UISprite组件的Type属性。下拉列表制作本节课制作的效果如下:1)首先利用UIsprite制作下拉表的背景。2)再制作好的背景图片下,添加一个Label组件,用来显示选项文字。3)选中UISprite添加BoxColl
2017-12-21 19:46:12 1370
转载 NGUI页签Tabview
页签介绍页签实际上是再Toggle的基础上延伸出来的一种组合型组件,无论是在游戏中还是应用软件中,都有他的身影。下面的图及时他们的体现。页签的头,使用的是UIToggle组件来完成,每一个Toggle对应相应的内容使用相应的Panel或UI容器来完成。页签的制作本节课将带领大家完成的效果如下。;1)创建3个空游戏对象,命名为Tab
2017-12-21 19:44:29 608
转载 NGUI复选框Toggle
Toggle简介Toggle组件经常用于制作具有两个状态的按钮,例如单选框,复选框,页签等。制作Toggle按钮,通常需要用两个精灵来呈现,分别是背景图,选中时显示的图。方块图既为背景,对勾为选中是要显示的图。Toggle方法1) 创建Sprite用于显示背景框图。2) 在背景图下继续创建Sprite显示对勾。3)在背景图上添加Box
2017-12-21 19:41:41 1647
转载 NGUI文本列表TextList
文本列表简介文本列表的制作文本列表的属性文本列表的方法文本列表的简介文本列表经常用于聊天内容的显示,访问记录的显示等,并按行的形式进行显示,如下图。文本列表制作由于文本主要是用来显示文本内容,所有需要借助一个Label组件,添加TextList组件。1) 添加Label组件2)添加BoxCollider2) 添加T
2017-12-21 19:34:27 1961 1
转载 NGUI滚动条ScrolBar
组件介绍Slider组件ScrollBar组件ProgressBar组件通过观察这三个组件的参数面板,看起来都比较相似。具体参数介绍Value 滑块,滚动条,进度条的进度值(0-1)之间.Size: 主要用于设置滚动条的长度大小Alpha:整个组件的透明度值Steps: 整个可变值得不仅数量
2017-12-21 19:23:15 459
转载 NGUI输入文本Input
输入框介绍输入框的创建输入框的常用属性输入框介绍输入框是再Label的基础上扩展出来的一种组件,主要的用途是接收用户的输入文本,可以输入单行或者多行文本,常用于注册界面的数据校验。输入框的创建参考效果:1)创建一个UISprite作为输入框背景,并命名为Input.2)在Input下添加一个Label,用于显示输入的文字。3)
2017-12-21 19:11:53 3307
转载 NGUI Label组件介绍
Label组件简介Label常用属性Label组件简介在UI界面中,经常会通过使用文字来对内容进行说明,这些文字的显示就需要使用到NGUI中的Label组件.我们可以通过菜单栏和快键键Ctrl+Shift+L来创建LabelLabel组件常用属性1.字体NGUI的Label组件支持NGUI插件自带的几种字体和Unity本身的字体。我们
2017-12-21 19:04:38 2819
转载 NGUI按钮的介绍
按钮介绍按钮是制作UI过程中最核心、最重要的控件之一。在游戏中,按钮是用户操作最依赖的控件,无处不在。广泛地说,按钮的核心在于接收事件,任何可以接收事件的,都可以称作按钮.下面的按钮可以说是我们经常见到。 按钮的创建运用NGUI制作一个能够响应用户操作的按钮,需要具备的条件有哪些?* 1.按钮的外貌—–使用UISprite来呈现。* 2.用
2017-12-21 17:17:23 390
转载 NGUI使用Atlas制作图集
图集制作1、选择要制作的图片放到对应目录下,在Asset下新建一个文件夹Picture用于放置图片:2、选中一张图片,打开Atlas Maker:3、单击窗口中的Create按钮,选择一个路径保存,在这里我们新建一个文件夹Prefabs用于保存生成的文件,可以看到Prefabs文件夹下生成了对应的3个文件:如果还需要创建其他的Atlas则重复
2017-12-21 16:26:38 693
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人