游戏引擎
dark_tone
编程自学者,喜爱专研未知。
智商不够
展开
-
unity --24 物理引擎--刚体,碰撞体
刚体物理引擎:模拟真实世界中物体的物理特性。带有刚体组件的游戏物体,刚体组件可使游戏对象受物理引擎控制,在受到外力时产 生真实世界中的运动。质量Mass:物体的质量。•阻力Drag:当受力移动时物体受到的空气阻力。0表示没 有空气阻力,极大时可使物体停止运动•角阻力Angular Drag:当受扭力旋转时物体受到的空气阻 力。0表示没有空气阻力,极大时使物体停止旋转。•使用重力Use...原创 2019-12-27 12:03:40 · 1102 阅读 · 1 评论 -
unity --23 世界坐标与局部坐标
世界(全局)坐标系:整个场景的固定坐标,不会变化,且只有一个。局部坐标系:每个物体都有自己的独立的坐标系,原点为模型轴心点,随物体移动或旋转而改变。所以单独给出一个vector3(0,0,1)或者vector3.forward,我们并不知道它属于哪个坐标系(原点在哪),也就不知道该向量的方向和大小。前面之所以能用magnitude和normalized,是因为unity中vector向量运算...原创 2019-12-27 06:53:08 · 1137 阅读 · 1 评论 -
unity --22 数学基础- 四元数和欧拉角
欧拉角三个数字来保存方位,共用vector3,但此时它不代表向量。优点•仅使用三个数字表达方位,占用空间小。•沿坐标轴旋转的单位为角度,符合人的思考方式。•任意三个数字都是合法的,不存在不合法的欧拉角。//欧拉角,每次叠加(1,0,0)旋转 transform.eulerAngles+=transform.right; //与前者等效,但实际涵义不同,内部使用...原创 2019-12-25 17:55:57 · 869 阅读 · 0 评论 -
unity --21 数学基础---三角函数
角度Degree与弧度Radian两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一 段弧。当弧长等于圆周长的360分之一时,夹角为1度。如果弧长等 于圆的半径时,夹角为1弧度。可见单位弧度的计量比角度要大得多。API:弧度=角度数Mathf.Deg2RadAPI:角度=弧度数Mathf.Rad2Deg日常生活中人类用角度比较多,但是在unity中,计算都是弧度。三角函数已知根...原创 2019-12-24 18:25:08 · 3741 阅读 · 1 评论 -
unity --20 数学基础---向量
定义一个数字列表,表示各个维度上的有向位移。假设向量是(1,1,1),则x轴的有向位移是1,y轴的有向位移是1,z轴的有向位移是1。向量是一个有大小有方向的物理量。–大小就是向量的模长。–方向描述了空间中向量的指向。向量的大小(1,1,1)只能代表各个维度上的有向位移,它不能代表大小,不能代表方向。大小是模长,根据数学公式计算,几何意义是从原点到向量点线段的长度。unity提供...原创 2019-12-20 14:42:56 · 641 阅读 · 0 评论 -
unity --19 输入及虚拟轴
unity的输入可分为两大类:传统输入早期游戏开发时候,都选用这种模式,通过分别对鼠标或者键盘的按钮判断来执行:①Input.GetMouseButton 系列: 判断鼠标,参数0是左键,参数1是右键②Input.GetKey 系列: 判断键盘,参数可用keycode枚举虚拟输入轴为了解决不同控制设备之间的差异(键盘左右,或者摇杆左右操作逻辑相同),再加上玩家有自定义按键的需求...原创 2019-12-19 11:20:49 · 1038 阅读 · 0 评论 -
unity--18 小总结,移动物体及旋转
3d物体移动–变换组件移动物体的位置基本上可以分为三个大类,第一种是直接赋值: transform.position += Vector3.left * Time.deltaTime; //transform.position += -transform.right * Time.deltaTime;要么是vector3的静态属性,要么是tranform的属...原创 2019-12-17 21:47:32 · 351 阅读 · 0 评论 -
unity --17 给怪物添加简易的AI
让青蛙能左右移动,原理是给青蛙添加看不见的空物体,空物体带有位置坐标。using System.Collections;using System.Collections.Generic;using UnityEngine;public class frog_move : MonoBehaviour { Transform leftpoint, rightpoint; ...原创 2019-12-12 13:00:35 · 546 阅读 · 0 评论 -
unity --16 继续完善sunny land
添加收集品增加cherry的动画,同时给它增加碰撞组件。打开trigger,意味着碰撞后会有触发效果。给物体添加tag标签给角色添加代码,这是个回调函数,当碰撞触发器起效后调用private void OnTriggerEnter2D(Collider2D collision) { if (collision.tag == "collection") ...原创 2019-12-12 07:51:38 · 510 阅读 · 0 评论 -
unity --15 练习制作一个2d游戏sunny land
刚体与碰撞体前面弄了瓦片地图。但此时显示出来的东西本质上还是图片。怎么让图片能成为独立的物体?需要添加两个部分,一个是让静态的图片能够模拟物理效果,各类刚体。另一个让静态的图片能够模拟碰撞效果,各类碰撞体。特别的,对瓦片地图,需要选用针对性的碰撞体,这样的好处是unity自动划分好碰撞区域,无需手动一个一个添加。控制移动在edit菜单栏里有一项project setting...原创 2019-12-11 11:27:31 · 644 阅读 · 0 评论 -
unity 14--瓦片地图tilemap
首先是导入素材。找到背景图,设置pixels per unit,每单位像素,这个选项的意义在于每一个场景中的格子,占据多少像素。把它设计成16,意味着每格子占据1616个像素,而不是44,像素密度越高,图像看起来也就越小。像素密度越低,图像看起来也就越大,形成平铺的效果。图片也是一个游戏对象,可以直接拖拽进去。地图瓦片2d游戏很重要的一个辅助工具,Tilemap地图瓦片。它的理念...原创 2019-12-10 15:01:36 · 4906 阅读 · 1 评论 -
unity--13 小总结 查找物体和查找组件
变换组件因为特别常用,所以unity给出了简易写法。另外整体原则就是:可以通过一个游戏物体获取它上面的任一组件,可以通过任一组件获得挂载该组件的游戏物体。在当前物体上找组件①transform :获取变换组件② GetComponent:获取其他组件在当前物体上找自己的子物体①Transform item in transform ,注意不能写成var item in transf...原创 2019-12-10 12:35:58 · 1049 阅读 · 0 评论 -
unity--12 尝试移动物体到多个路点的位置
需求是把立方体移动到点point01,point02.暂时想不通,简化问题,先尝试让物体移动到指定位置,比如(5,5,5)using System.Collections;using System.Collections.Generic;using UnityEngine;public class NewBehaviourScript : MonoBehaviour { //...原创 2019-12-10 10:22:10 · 576 阅读 · 0 评论 -
unity--11 练习,制作倒计时提示
需求:从某个时刻开始倒计时,比如02:00,01:59…………显示在Text组件里。using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;//必须引入ui命名空间public class CountDownTimer : MonoBehavio...原创 2019-12-07 08:27:54 · 308 阅读 · 0 评论 -
unity--10 引擎的API的用法
实际开发最常用的就是unity引擎提供的API。首先对整个体系结构有大概的了解。自己写的类之所以能够调用unity的api,是因为继承了MonoBehaviour。功能是由MonoBehaviour及其父类提供。和传统c#开发不同,unity的api通常是不允许new对象的,这里很容易产生混淆。实际后台运行的代码,unity必然也new了对象,只不过隐藏起来了,那不能new对象,我们又怎...原创 2019-12-07 05:18:38 · 303 阅读 · 0 评论 -
unity--09 生命周期+ 脚本调试
利用unity的控制台调试简单调试可用,类似于windows下的控制台。利用Debug.Log(变量)或print(变量)即可输出到控制台。注意事项:①print就是Debug.Log的简写形式,但是有一个前提条件,脚本必须继承自MonoBehaviour,因为print是MonoBehaviour的方法。没有继承的话,只能使用Debug.Log②这种调试代码如果在发布游戏后,必须删除...原创 2019-12-07 03:56:58 · 158 阅读 · 0 评论 -
unity--08 c#脚本的概念与要求,生命周期
概念前面简略的谈了下c#脚本。首先什么是脚本?是附加在游戏物体上用于定义游戏对象行为指令的代码。注意事项①脚本的文件名与脚本中的代码类名必须一致。②生成的脚本代码没有命名空间namespace,这是unity没有自动添加,而不是不需要,自己开发的时候应该添加自己的命名空间。③生成的类必须继承MonoBehaviour类,注意这是需要挂在游戏物体上(调用unity提供的api),如果...原创 2019-12-07 01:17:22 · 497 阅读 · 0 评论 -
unity--07 光照系统
全局光照简称GI,能够计算直接光、间接光、环境光以及反射光的光照系统。它的目的是为了模拟现实世界的光照。间接光可以理解是反弹光,注意和反射光的区别,发射光强调的是和环境交互。直接光光源直接发出的光,通过Light组件实现也可以使用unity已经做好的游戏对象。DirectionalLight 平行光,PointLight 点光源,SpotLight 聚光灯,Area Light区...原创 2019-12-06 10:38:47 · 333 阅读 · 0 评论 -
unity--07 渲染管线工作流程与Instantoc
概念图形数据在GPU上经过运算处理,最后输出到屏幕的过程cpu会根据摄像机判断物体要不要显示,然后准备相应的数据,发送给gpu。gpu接受数据,进行运算,比如坐标系转换,因为屏幕是2d的,空间3d坐标需要转换成2d坐标。图元装配:连接相邻的顶点,绘制为三角面,把点结合成线,线结合成三角面,因为若干个三角形拼接成任意3d图形。光栅化:计算三角面上的像素,并为后面着色阶段提供合理的插值参...原创 2019-12-04 09:21:20 · 316 阅读 · 0 评论 -
unity--06 摄像机Camera与天空盒Skybox
主摄像机unity场景中会自带一个main Camera,它是一个游戏对象。更进一步说,这个主摄像机其实是一个空对象,附加了Camera组件Transform 变换组件Camera 摄像机:向玩家捕获和显示世界Flare Layer 耀斑层:激活可显示光源耀斑Audio Listener音频监听器:接收场景输入的音频源Audio Source并通过计算机的扬声器播放声音。核心在于C...原创 2019-12-04 07:29:59 · 2429 阅读 · 1 评论 -
unity--05 材质Material,着色器,纹理
概念材质:物体的质地,指色彩、纹理、光滑度、透明度、反 射率、折射率、发光度等。实际就是Shader的实例Shader着色器:专门用来渲染3D或2D图形的技术,可以使纹 理以某种方式展现。实际就是一段嵌入到渲染管线中的程序,可以控制GPU运算图像效果的算法Texture 纹理:附加到物体表面的贴图个人理解:所以材质的概念比纹理更广泛,纹理只是一张图片,而材质是着色器程序在运行过程中读取的参...原创 2019-12-04 05:11:58 · 316 阅读 · 0 评论 -
unity--04 场景,组件,游戏对象
概念场景Scene:一组相关联的游戏对象的集合,通常游戏中每个关卡就是 一个场景,用于展现当前关卡中的所有物体。unity的场景文件双击就能打开,像编程语言中的项目。游戏对象GameObject:运行时出现在场景中的东西,例如:人物、地形、树木……它是一种容器,可以挂载组件。组件Component:是游戏对象的功能模块,每个组件都是一个类的实例。换句话说,每一个游戏对象都至少包含一个...原创 2019-12-03 18:40:09 · 818 阅读 · 0 评论 -
unity--03 视觉位置移动操作和物体移动操作
视觉位置移动鼠标右键按住不放,会以右键点为参考,来回旋转视觉观察位置。鼠标中键按住不放,能左右上下的移动视觉观察位置。也可以配合键盘一起使用:3. 鼠标右键按住不放,此时能以键盘上的wasdqe键进行移动,旋转,缩放视觉位置。4. 围绕物体旋转,按住键盘ALT,再按住鼠标左键不放。也可以先定位物体(焦点),方法是双击物体或者选中物体后按F键,再ALT,鼠标左键。我个人实践起来,觉...原创 2019-12-03 03:17:10 · 1087 阅读 · 0 评论 -
unity--02 界面布局以及尝试创建c#脚本
在assets栏目右键,可以create c#脚本。默认创建一个双击打开,因为我安装了monodevlop,所以它会默认打开这个文本编辑器。有点刺眼,调整一下。里面的主题界面跟以前用过的vim非常相似,连名字都基本一样。脚本分析,unity已经写好了一个架构,文件名和类名一致。using System.Collections;using System.Collections...原创 2019-12-02 19:38:11 · 297 阅读 · 0 评论 -
unity--01 个人实践安装与搭建环境
首先按照网络上的去访问http://www.unity3d.com/,但查找资料,应该访问https://unity.cn/unity分为个人免费版和企业商用收费版。不过我点击下载的时候,并没有发现网络上所说要选择“个人版”,压根没这个选项。试试看吧:unity hub是一个管理多个unity版本的工具,所以忽略。为了学习方便,我下的是2017年的版本。自己已经有vs2017,...原创 2019-12-01 07:08:56 · 295 阅读 · 0 评论