Unity基础学习
文章平均质量分 63
在此专栏中,总结有关Unity基础学习的过程,从0基础到项目的开发
yy763496668
这个作者很懒,什么都没留下…
展开
-
Unity_引擎简介_001
Unity 3d是什么?出自丹麦、由Unity Technologies开发的游戏引擎,一款高效的游戏开发工具。 Unity具有高度优化的图形渲染管道,无论2D游戏还是3D游戏,均可达到美轮美奂的画面效果。通过组件式的进行开发,一次开发即可轻松部署到Windows、Mac、IOS、Android、Wii、PS3等平台,使快速、高质量的开发成为可能。特色和优势封闭源码的收费的商业游戏引擎通过组件式原创 2017-07-19 07:21:16 · 6723 阅读 · 1 评论 -
Unity_编辑器介绍_002
编辑器结构Unity 3D常用的面板Scene视图Game视图Hierarchy视图Project视图Inspector视图场景调整工具其它 Project视图Project视图主要存放游戏中用到的所有资源文件,其结构和硬盘上工程根目录下的Assets文件夹 对应。 常见的资源包括:游戏脚本、预设、着色器、材质、动画、自定义字体、纹理、物理材质和GUI皮肤等。 在Project视图原创 2017-07-19 07:29:33 · 584 阅读 · 2 评论 -
Unity_往复运动_057
题目:创建脚本实现沿着z轴方向移动,当到达10后,反向移动10,如此不断重复using UnityEngine;using System.Collections;public class Move : MonoBehaviour { //设置一个标志位 当intFlag 为1的时候表示向Z轴的正方向移动 当intFlag 为-1的时候表示向Z轴的负方向移动 int intFlag原创 2017-08-16 21:32:57 · 1421 阅读 · 0 评论 -
Unity_宠物跟随效果_058
下面的案例是实现宠物跟随的效果 下面的代码是角色移动的脚本using UnityEngine;using System.Collections;public class PlayerMove : MonoBehaviour { // Update is called once per frame void Update () { //按W键 前进原创 2017-08-16 23:03:20 · 3688 阅读 · 1 评论 -
Unity_脚本的认识_003
Unity脚本的结构每一个脚本就是一个类,只不过在类中没有之前的我们在C#中接触的Main方法了。我们写的逻辑代码需要直接或者在间接在Unity声明周期函数中调用。而且这样的类不需要通过实例化调用对象,只需要将脚本挂载到游戏对象上即可。根据之前的博客我们已经了解过,Unity是组件式开发。脚本也是一个组件。MonoBehavior脚本和C#脚本的区别不能new 如果脚本继承MonoBehavior原创 2017-07-19 13:30:41 · 929 阅读 · 0 评论 -
Unity_脚本操作对象_004
GameObject属性GameObject.activeSelf 是否活动该属性是一个只读属性我们可以通过打印日志的方式看到运行的结果Debug.Log(gameObject.activeSelf);GameObject.tag 标签该属性是一个可读可写的属性//访问游戏对象的标签Debug.Log(gameObject.tag);如果要通过代码对游戏对象修改tag值,确保已经在标签列表原创 2017-07-22 09:14:28 · 1453 阅读 · 0 评论 -
Unity_3D数学基础_005
向量(Vector3)在虚拟的游戏世界中,3D数学决定了游戏,如何计算和模拟出开发者以及玩家看到的每一帧画面。学习基础的3D数学知识可以帮主用户对游戏引擎产生更深刻的了解。 向量定义:既有大小又有方向的量叫做向量。在空间中,向量用一段有方向的线段来表示。应用十分广泛,可用于描述具有大小和方向两个属性的物理量,例如物体运动的速度、加速度、摄像机观察方向、刚体受到的力等都是向量。因此向量是物理、动画、原创 2017-07-22 09:40:50 · 1041 阅读 · 0 评论 -
Unity_Transform组件_006
()任何游戏对象在创建的时候都会附带Transform组件,用于储存并操控物体的位置、旋转和缩放。 并且该组件是无法删除的。 Transform面板一共包含3个属性: Position:位置 Rotation:旋转 Scale:(缩放) 可修改对象的位置、旋转方式、缩放数值位置position transform.position是一个可读可写的属性。transform.positi原创 2017-07-22 09:49:15 · 1681 阅读 · 0 评论 -
Unity_Time类_007
Time原创 2017-07-22 09:55:01 · 482 阅读 · 0 评论 -
Unity_Input类_008
输入管理器可以设置项目的各种输入和操作。Edit->Project Settings->Input 获得键盘按着某个键的时候就会返回一个true public static bool GetKey(string name); public static bool GetKey(KeyCode key);using System.Collections;using System.Collect原创 2017-07-22 09:55:35 · 426 阅读 · 0 评论 -
Unity_Random类_009
Random类原创 2017-07-22 09:56:34 · 552 阅读 · 0 评论 -
Unity_脚本和光照系统的结合使用_010
灯光灯光在游戏场景中具有不可或缺的作用,可以渲染场景的氛围,比如打丧尸的游戏,场景中应该是光线比较暗的,光线比较暗的才可以凸显恐怖的氛围。再比如做一些儿童类的游戏,场景中的光线比较光鲜才会让儿童的有愉快的心情。灯光的分类DirectionalLight 方向光 PointLight 点光源 SpotLight 聚光灯 AreaLight 区域光灯光的属性对于灯光来说其实就是一个空物体,只不原创 2017-07-22 09:59:19 · 4298 阅读 · 0 评论 -
Unity_脚本和物理系统的结合使用_011
Unity内置了NVIDIA的Physx物理引擎,Physx是目前使用最为广泛的物理引擎,被很多游戏大作所采用,开发者可以通过物理引擎高效、逼真地模拟刚体碰撞、车辆驾驶、布料、重力等物理效果,使游戏画面更加真实而生动。Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体可接受外力与扭矩力用来保证游戏对象像在真实世界中那样进行运动。任何游戏对象只有添加了刚体组件才能受到重力的影响,原创 2017-07-22 10:00:38 · 914 阅读 · 0 评论 -
Unity_脚本与寻路系统的结合使用_013
什么是AI人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能的发展的领域有哪些?智能机器人,无人驾驶,Alpha go,小度机器人,智能家居。游戏中加入AI有什么好处提高游戏的可玩性 激发玩家的挑战欲望 增加游戏的友好体验Unity中的Navigation导航NavMesh原创 2017-07-22 10:02:39 · 836 阅读 · 0 评论 -
Unity_Legacy动画系统_014
Legacy动画系统Unity3D的Mecanim动画系统是非常强大的,而且作为Unity推荐的动画系统,其未来会完全代替老的一套动画系统,即Legacy动画系统。目前的情况是Mecanim与Legacy两套动画系统同时共存,但是并不是说Legacy动画系统就没有任何价值了,作为Unity4.0以前使用的动画系统,我认为还是很有必要去了解和学习的,所以就有了这篇笔记。Unity自带的资源包里面的Ch原创 2017-07-23 21:35:02 · 916 阅读 · 0 评论 -
Unity_Mecanim动画系统_015
导入参数设置 Avatar配置 动画重定向 动画状态机 Animator组件实现程序控制基本动作 Avatar Mask应用 Mecanim系统IK原创 2017-07-23 21:37:29 · 557 阅读 · 0 评论 -
Unity_UGUI入门_016
什么是UIUI即User Interface(用户界面)的简称 好的UI设计不仅是让软件变得有个性有品味,还要让软件的操作变得舒适、简单、自由、充分体现软件的定位和特点。 什么是UGUIUGUI 是Unity 官方推出的最新UI系统。它从 Unity 4.6 开始,被集成到 Unity 的编辑器中。相较于旧的 UI 系统,它绝对属于一个巨大的飞跃!因为只要有过旧 UI 系统使用体验的开发者,原创 2017-07-25 13:14:33 · 737 阅读 · 0 评论 -
Unity_UGUI进阶_017
ButtonButton控件除了公共的Rect Transform与Canvas Renderer两个UI组件外,Button还默认拥有Image(Script)与Button(Script)两个组件。组件Image(Script)里的属性与前面所讲的Image控件的Image(Script)组件里的属性是一样的,例如Source Image的图像类型仍为一个Sprite(精灵),通过为此赋值,就可原创 2017-07-25 13:15:27 · 1534 阅读 · 0 评论 -
Unity_新版粒子系统_018
什么是粒子系统粒子系统表示三维计算机图形学中模拟一些特定的模糊现象的技术,而这些现象用其它传统的渲染技术难以实现的真实感的 game physics。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象发光轨迹这样的抽象视觉效果等等。新版粒子系统介绍Shuriken粒子系统是继Unity3.5版本之后推出的新版粒子系统,它采用了模块化管理,个性化的粒子模块配合粒原创 2017-07-25 13:16:59 · 1987 阅读 · 0 评论 -
Unity_音频_019
音频原创 2017-07-25 13:17:34 · 378 阅读 · 0 评论 -
Unity_视频_020
Unity支持的播放视频格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。只需将对应的视频文件拖拽入Project视图即可,它会自动生成对应的MovieTexture对象。如下图所示,MOMO将default_video.mp4拖拽入Project视图中,如果视频中含有音频的话会对应生成audio文件,因为我的视频没有音频所以没有生成 audio文件。接着在Hierarchy视图中原创 2017-07-25 13:18:08 · 461 阅读 · 0 评论 -
Unity_PlayerPrefs_022
Unity3D提供了一个用于本地持久化保存与读取的类——PlayerPrefs。工作原理非常简单,以键值对的形式将数据保存在文件中,然后程序可以根据这个名称取出上次保存的数值。 PlayerPrefs类支持3种数据类型的保存和读取,浮点型,整型,和字符串型。 右图中我么可以看到PlayerPrebs类是一个密封类。我们不能对此类继承。 具体的函数讲解如下原创 2017-07-25 13:20:19 · 462 阅读 · 0 评论 -
Unity_2D系统_023
2D游戏简介2D游戏是指二维交互式动画,也就是我们通常所说的‘2D动画’。 只不过在游戏方面,这种动画可以根据用户的需求而进行互动2D游戏基本特征二维交互式动画的基本特征如下(主要是针对3d游戏):⒈贴图传统的2d游戏中的美术资源(人物行走、人物状态、地图等等)都是以png或jpg的图形文件渲染而成,而3d游戏中的美术资源多数是以模型为主.⒉视角2d游戏是没办法完成视角转换的.因为2d游戏的美术资原创 2017-07-25 13:21:12 · 788 阅读 · 0 评论 -
Unity_线渲染器和拖尾_024
线渲染器拖尾原创 2017-07-25 17:30:35 · 979 阅读 · 0 评论 -
Unity_面向对象设计原则_026
单一原则SRP 开闭原则OCP 里氏转换原则LSP 依赖倒置原则DIP 接口隔离原则ISP 合成复用原则CRP 迪米特法则LKP原创 2017-07-27 17:59:26 · 715 阅读 · 0 评论 -
Unity_单例设计模式_027
有些时候我们需要只让同一个类只有一个对象,比如Unity的各个面板,我们在打开面板的时候,如果该面板已经显示出来了,那么我们没有必要在打开一个新的面板,直接使用已有的面板就行。这时候我们就要使用单例模式。单例模式 Singleton保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个访问对象被访问,但它不能防止你的实例化多个对象。一个最好的办法就是,让类自身负责保原创 2017-07-27 18:04:30 · 591 阅读 · 0 评论 -
Unity_状态模式_028
状态模式定义状态模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。对象行为型模式 又名状态对象(Objects for States)用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题 将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象状态可以灵活变化 对于客户端而言,无须关心对象状态的转换以及对象所处的当前状态,无论对于何种状态的对象,客原创 2017-07-27 18:05:26 · 761 阅读 · 0 评论 -
Unity_简单工厂设计模式_029
简单工厂模式基本实现流程 具体产品类:将需要创建的各种不同产品对象的相关代码封装到具体产品类中 抽象产品类:将具体产品类公共的代码进行抽象和提取后封装在一个抽象产品类中 工厂类:提供一个工厂类用于创建各种产品,在工厂类中提供一个创建产品的工厂方法,该方法可以根据所传入参数的不同创建不同的具体产品对象 客户端:只需调用工厂类的工厂方法并传入相应的参数即可得到一个产品对象 简单工厂模式 (原创 2017-07-27 18:07:33 · 696 阅读 · 0 评论 -
Unity_外观模式_030
两种喝茶方式示意图 一个客户类需要和多个业务类交互,而这些需要交互的业务类经常会作为一个整体出现 引入一个新的外观类(Facade)来负责和多个业务类【子系统(Subsystem)】进行交互,而客户类只需与外观类交互 为多个业务类的调用提供了一个统一的入口,简化了类与类之间的交互没有外观类:每个客户类需要和多个子系统之间进行复杂的交互,系统的耦合度将很大 引入外观类:客户类只需要直接与外原创 2017-07-27 18:09:26 · 595 阅读 · 0 评论 -
Unity_观察者模式_031
交通信号灯与汽车示意图 交通信号灯 观察目标 汽车(汽车驾驶员) 观察者 软件系统:一个对象的状态或行为的变化将导致其他对象的状态或行为也发生改变,它们之间将产生联动 观察者模式: 定义了对象之间一种一对多的依赖关系,让一个对象的改变能够影响其他对象 发生改变的对象称为观察目标,被通知的对象称为观察者 一个观察目标可以对应多个观察者定义观察者模式:定义对象之间的一种一原创 2017-07-27 18:11:27 · 802 阅读 · 0 评论 -
Unity_简单对象池_032
IPoolObject BasePoolObject ObjectPool Test原创 2017-07-27 18:12:54 · 463 阅读 · 0 评论 -
Unity_有限状态机_033
结构 举例 FSM优点 数据结构中的理解原创 2017-07-27 18:15:39 · 425 阅读 · 0 评论 -
Unity_UML图的使用01_034
UML基本类图介绍面向对象设计的基础就是使用类。类是用来代表现实事务或者功能的构造块。我们要向在编写代码之前就可以对系统拥有全面的认识。那么我们必须学习如何建模及其相互之间的关系。类图是由若干类关联在一起,反映系统或者子系统组成结构的静态图。类图的建模贯穿工程的分析和设计阶段的始终,通常从商务伙伴能够理解的类开始建模,最终往往成为只有开发小组才能够完全理解的类。类图的组成类图由如下元素组成: 类:原创 2017-07-28 15:15:50 · 1035 阅读 · 0 评论 -
Unity_UML图的使用02_035
UML图中表示类的关系 以下内容转载自:http://blog.csdn.net/tianhai110/article/details/6339565 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency)原创 2017-07-28 15:22:30 · 494 阅读 · 0 评论 -
Unity_项目优化策略_036
遮挡剔除技术 烘焙概念及设置 LOD技术动态光探头在之前的博客中更新过动态光照探针的信息博文连接 光照探针 (light probe)反射探针原创 2017-07-28 15:44:01 · 316 阅读 · 0 评论 -
Unity_资源管理_037
WWW类Resource类AssetBundle资源动态加载内存结构 依赖关系 BundleManager技术陷阱原创 2017-07-28 15:46:38 · 304 阅读 · 0 评论 -
Unity_NGUI介绍_038
NGUI 是专门针对 Unity 引擎、用 C#语言编写的一套插件,它已经成为了目前世界上应用最广、最成熟的 Unity 制作 UI 的插件,完美地弥补了 Unity 引擎原生 GUI 系统和 NewGUI 系统的各种不足。程序员可以利用它提供的一整套 UI 框架和事件通知系统来进行自己项目的 UI 设计和制作。正式开发 UI 之前必须明确的几个问题我们在正式开发游戏时,适配是必须提前考虑的问题,如原创 2017-07-28 15:53:15 · 484 阅读 · 0 评论 -
Unity_NGUI基础01_039
UIRootUICameraUIPanel原创 2017-07-28 16:32:56 · 327 阅读 · 0 评论 -
Unity_NGUI基础02_040
深度概念 摄像机 制作图集及图集原理 制作字体集原创 2017-07-28 16:34:23 · 325 阅读 · 0 评论 -
Unity_NGUI基础控件_自定义Button_041
//找到button组件添加点击事件 EventDelegate.Add(GetComponent<UIButton>().onClick, DeleClickMethod); //UIEventListener全局事件系统添加点击事件,有参数 UIEventListener.Get(gameObject).onClick = ListenerClickMethod;//按钮原创 2017-07-28 16:35:39 · 462 阅读 · 0 评论