Unity3D
unity
healthLau
他们坐在特快列车里,却不知道他们要追寻什么。所以他们很烦躁,不停地绕圈子......
展开
-
Unity3D ToolBar控件(工具栏)
ToolBar工具用于创建工具栏,并且以Tab页面的形式显示,选择其中任意一项后就可返回所选项的ID工具栏常位于界面顶部或底部。常用形式:GUI.Toolbar (位置, 索引, 数值/集合)int index= 0; //创建索引string[] arr= {"选项一", "选项二", "选项三"};index = GUI.Toolbar (位置, ...原创 2019-07-23 18:26:45 · 1592 阅读 · 0 评论 -
Unity3D 导入、导出 游戏包(Windows)
导入游戏包1.首先打开Windows上的Unity,在导航栏中选择“Asset” ==> “Import Package” ==> “Custom Package”菜单项2.在源码的根目录下找到需要导入的游戏包,该游戏包的后缀为 unitypackage,选择后打开即可。如下图所示:3.游戏包中的资源已经出现在列表中,点击右下角的“Import”按钮即可完成导入,然...原创 2019-07-28 21:50:48 · 16133 阅读 · 0 评论 -
Unity3D 2D贴图 与 帧动画
2D贴图绘制方式有两种,第一种由 GUI 绘制,第二种是将贴图以材质的形式绘制在游戏对象中。GUI绘制在屏幕中绘制一张静态贴图,需要使用 GUI.DrawTexture() 方法,该方法原型如下:GUI.DrawTexture(位置, 图片对象, 缩放模式, 是否开启图片混合模式, 图片缩放宽高比);例如:GUI.DrawTexture(new Rect(100,100...原创 2019-08-06 15:33:27 · 3648 阅读 · 0 评论 -
Unity3D Time.deltaTime
Time.deltaTime表示每一帧的时间Unity中的 Update() 方法为系统所调用,每一帧调用一次。(一般每帧的时间都不相同)假设一秒有20帧,那么一秒钟就会调用该方法20次假如想让物体沿Z轴以 2米/秒 的速度移动,则:void Update(){ transform.Translate(0, 0, Time.deltaTime * 2);}...原创 2019-08-06 16:48:44 · 388 阅读 · 0 评论 -
Unity3D 发送广播与消息
一个对象可以绑定多个脚本,实现这些脚本之间的交互就可以使用广播机制。游戏对象之间发送的广播与消息分为三种:第一种向子对象发送,将发送至该对象的同辈对象或者子孙对象中;第二种为给自己发送,发送至自身对象;第三种为向父对象发送,发送至该对象的同辈或者父辈对象中。发送消息的方法都有两个参数:第一个参数为接受消息的方法名称,第二个参数为一个 object 对象,可将任意类型作为参数附加在消息中。...原创 2019-08-08 20:55:03 · 4208 阅读 · 0 评论 -
Unity3D 克隆游戏对象
克隆游戏对象与创建游戏对象在效果上是一样的,但克隆的效率高。克隆常用于一些完全相同且数量庞大的游戏对象使用 Instantiate()方法 克隆游戏对象using System.Collections;using System.Collections.Generic;using UnityEngine;public class E4_05 : MonoBehaviour ...原创 2019-08-08 21:17:45 · 10843 阅读 · 0 评论 -
Unity3D 示例——人物移动
一个是通过W、A、S、D来移动人物(示例一),另个是按屏幕上的按钮来移动人物(示例二)。很简单,只改了几行代码。下面是“Assets”文件夹里面的资源。示例一:using System.Collections;using System.Collections.Generic;using UnityEngine;public class E3_07keyboard :...原创 2019-08-06 19:56:02 · 3027 阅读 · 0 评论 -
Unity3D 脚本的生命周期
Unity脚本从唤醒到销毁有着一套比较完善的生命周期,添加任何脚本都必须遵守自身的周期法则。系统自身调用的比较重要的几个方法:void Update() {} 正常更新,用于更新逻辑。每次创建脚本时默认会添加这个方法,此方法每帧都会由系统调用一次。void LateUpdate() {} 推迟更新,在Update()方法执行完后调用,每帧调用一次。void Aw...原创 2019-08-07 15:03:06 · 790 阅读 · 0 评论 -
Unity3D 用脚本来操作游戏对象1(创建游戏对象)
创建游戏对象创建游戏对象有两种方式:第一种为将模型预先放入“Hierarchy”视图中,第二种(脚本方式)为在代码中根据条件动态创建与删除游戏对象。实例在视图中添加两个按钮,“创建Cube”和“创建Sphere”,点击相应按钮会在游戏中动态的添加相应的游戏对象。GameObject.CreatePrimitive()方法:用于创建一个原始游戏对象,其参数可设置为立方体、球体等...原创 2019-08-07 19:01:27 · 3808 阅读 · 0 评论 -
Unity3D 用脚本来操作游戏对象2(获取游戏对象)
在脚本中获取游戏对象的方式有三种:第一种通过对象名获取,第二种通过标签(Tag)获取单个游戏对象,第三种通过相同标签获取多组游戏对象。一、通过对象名获取游戏对象首先在“Hierarchy”视图中添加立方体(Cube)、球体(Spere)和平面(Plane),然后将球体拖拽至“GameObject”选项中,作为“GameObject”的1子对象。如图:GameObject.Find(...原创 2019-08-07 21:20:34 · 1856 阅读 · 0 评论 -
Unity 3D 用脚本来操作游戏对象4(平移、旋转与缩放)
目录平移游戏对象旋转游戏对象缩放游戏对象在3D世界里,任何一个游戏对象在创建的时候都会附带transform(变换)组件,并且无法删除。任何一个模型的三维坐标都保存在Vector3容器中,该容器记录模型在x轴、y轴、z轴方向的坐标。平移游戏对象transform.Translate()方法,唯一参数为平移的方向示例:using System....原创 2019-08-11 11:30:57 · 2060 阅读 · 0 评论 -
Unity 3D 工具类
工具类一、时间二、等待三、随机数四、数学五、四元数一、时间Time.time:从游戏开始后开始计时,表示截止目前共运行的游戏时间。 Time.deltaTime:获取Update()方法中完成上一帧所消耗的时间。 Time.fixedTime:FixedUpdate()方法中固定消耗的时间总和。FixedUpdate()每一帧更新的时间可通过导航菜单栏“Edi...原创 2019-08-11 14:12:31 · 340 阅读 · 0 评论 -
Unity3D 力
Unity中力有两种:普通力和位置力普通力:需要设置力的大小与方向位置力:需要设定目标点的位置示例:using System.Collections;using System.Collections.Generic;using UnityEngine;public class E6_02 : MonoBehaviour{ GameObject addFrc...原创 2019-08-20 16:21:45 · 969 阅读 · 0 评论 -
Unity 3D 游戏实例——小地图的制作
用一张小图片当做小地图,再用一个特别小的图片当做小地图上的人物,将两张图片赋值给相应变量。using UnityEngine;using System.Collections;public class E4_10 : MonoBehaviour{ //大地图地形对象 GameObject plane; //大地图主角对象 GameObject cube...原创 2019-08-11 16:55:31 · 1932 阅读 · 1 评论 -
Unity 3D 摄像机的类型
摄像机的类型摄像机有两种类型:“Perspective”(放射观察角度)和“Orthographic”(垂直观察角度)。视图修改摄像机类型在摄像机的Inspector视图中的“Projection”下拉菜单中可以修改摄像机类型。脚本动态修改摄像机类型using System.Collections;using System.Collections.Gener...原创 2019-08-12 12:40:56 · 1075 阅读 · 0 评论 -
Unity3D 刚体组件的属性
刚体组件包含的属性:原创 2019-08-21 13:07:24 · 2415 阅读 · 0 评论 -
Unity3D Failed to import package with error: Couldn't decompress package错误
错误导入工程对应的游戏包时出现此问题:Failed to import package with error: Couldn't decompress package问题原因:报所在的路径存在中文,Unity不识别中文解决方法出现此报错时,一般把该文件包的存储路径设置为英文即可解决,因为Unity不识别中文路径。...原创 2019-07-28 21:38:46 · 5519 阅读 · 0 评论 -
Unity3D 用脚本来操作游戏对象3(添加与修改组件)
组件包括脚本类、粒子类、物理类、声音类和渲染类等等。添加游戏组件可以使用 AddComponent<组件名>() 的方法。组件自身没有对应的删除方法,需要用父类执行 Object.Destroy() 方法才能删除它。GameObect.AddComponent<组件名>():添加组件 Destroy(GameObect.GetComponent<组件名>...原创 2019-08-08 14:57:16 · 3013 阅读 · 0 评论 -
Unity3D Slider控件(滑动条)
Slider 控件包括两种,分别是水平滚动条 GUI.HorizontalSlider 和垂直滚动条 GUI.VerticalSlider具体使用方法如下:GUI.HorizontalSlider(位置, 当前值, 起始值, 终点的值); //水平滚动条GUI.VerticalSlider(位置, 当前值, 起始值, 终点的值); //垂直滚动条...原创 2019-07-25 08:16:28 · 7178 阅读 · 1 评论 -
Unity3D button控件
按钮有三个基本的状态组成:未点击状态、击中状态、点击后状态。GUI.Button(位置, 按钮显示内容);例如:GUI.Button(new Rect(10,20,100,40), "我是按钮");将添加一个显示“我是按钮”的按钮,位置在界面的Rect(10,20,100,40)位置。点击查看Rect()位置图解下面示例中包含一个文字按钮,和一个连续按钮(都是文...原创 2019-07-21 13:38:00 · 2431 阅读 · 0 评论 -
Unity3D lable控件
Unity3D Label 控件用于在屏幕上显示文本内容或图片。GUI.Lable(位置, 标签显示内容);例如:GUI.Lable(new Rect(10,20,100,40), "我是标签");将添加一个显示“我是标签”的标签,位置在界面的Rect(10,20,100,40)位置。 Rect()位置图解: Rect(x, y, width, height...原创 2019-07-21 14:08:53 · 997 阅读 · 0 评论 -
Unity 3D ScrollView控件(滚动视图)
ScrollView控件可以设定一个滚动显示区域。如果GUI控件超出其显示区域,视图下方或者右方将会出现滚动条。比如游戏中帮助信息或关于信息过长,就可以使用滚动条来查看相关信息。滚动条由两部分组成,一个是 GUI.BeginScrollView,用于开始滚动视图,另一个是 GUI.EndScrollView,用于结束滚动视图。需要滚动显示的内容就夹在其间,具体使用方法示例如下:usin...原创 2019-07-25 16:15:14 · 3247 阅读 · 0 评论 -
Unity3D 线性布局
线性布局是以线型连续排列的形式将GUI控件有规律的显示在屏幕中,共分为两种:水平线性布局 和 (默认)垂直线性布局 创建水平线性布局时,首先需要使用BeginHorizontal()方法,然后将控件添加至线性布局中,最后使用EndHorizontal()方法结束当前线性布局。如果使用垂直线性布局,则需要使用BeginVertical()方法与EndVertic...原创 2019-12-09 23:06:09 · 576 阅读 · 0 评论 -
Unity 3D GroupView控件(群组视图)
群组视图可将多个视图放在一个群组中,群组中任何视图的坐标都是相对坐标,相对于群组视图左上角的坐标。一般形式:GUI.BeginGroup (new Rect (10, 50, 200, 400)); //开始这个群组/* 该群组中的内容,位置都是相对该群组左上角的位置而确定的 */GUI.EndGroup (); //结束这个群组具体示例...原创 2019-07-25 16:49:48 · 431 阅读 · 0 评论 -
Unity 3D Window控件(窗口)
一个游戏界面可以由很多窗口组成,在窗口中可以添加任意的功能组件,窗口的使用丰富了游戏界面,各式各样的游戏视图,它们都是窗口的子类。创建窗口需要设定它的显示区域,在窗口中可以添加任何组件,前提是组建的显示区域必须在窗口中,否则无法显示。窗口中所有控件的坐标均采用相对坐标,相对窗口左上角的坐标。具体示例如下:using UnityEngine;using System.Collec...原创 2019-07-25 17:00:05 · 1732 阅读 · 0 评论 -
Unity3D GUILayout.FlexibleSpace(对齐方式 )
一般窗口都是矩形,有四个角(左上角,右上角,左下角,右下角)。如果要使控件分别对齐在这4个角当中,就需要使用FlexibleSpace()方法对其偏移了。FlexibleSpace()的原理是将两个控件完全左右或者上下对齐在游戏窗口中,它会自动的获取当前屏幕的宽度和高度保证控件不会超过游戏窗口。示例:using UnityEngine;using System.Collection...原创 2019-07-25 17:44:46 · 5993 阅读 · 0 评论 -
Unity3D Space(控件偏移)
布局与布局之间都是以一种线性方式紧密排列的使用Space()方法可以实现控件之间的位置偏移。形式:GUILayout.Space(偏移量);示例:将两个垂直布局嵌套至水平线性布局中,用Space()方法实现布局或控件之间的偏移。using System.Collections;using System.Collections.Generic;using UnityEngine...原创 2019-08-03 10:32:08 · 2224 阅读 · 0 评论 -
Unity3D 添加与关闭窗口
游戏窗口是可以动态的添加与关闭的。如下例:点击添加或关闭,窗口将执行添加与关闭可拖拽窗口的操作using System.Collections;using System.Collections.Generic;using UnityEngine;public class window : MonoBehaviour { ArrayList list = new Arra...原创 2019-08-03 21:15:15 · 2576 阅读 · 0 评论 -
Unity3D TextField 和 PasswordField控件(文本框)
TextField控件TextField控件主要用于监听用户输入的信息,使用GUI.TextField()方法显示输入框,该方法的返回值为用户输入的字符串信息。常见形式:GUI.TextField(位置, 显示内容, 字符串最大长度);如:GUI.TextField (new Rect(60,40,200,30),"请输入用户名",15);将在界面Rect(60,40...原创 2019-07-23 13:12:24 · 2205 阅读 · 2 评论 -
Unity3D GUI Skin
GUI Skin作用:用于给控件添加一个漂亮的控件皮肤在Project视图中点击 “Create”——> “GUI Skin” 菜单项,创建一个GUI Skin。使用GUI Skin可修改任意系统提供的控件皮肤。在Inspector视图中可以设置皮肤控件:下面是Inspector视图中,GUI Skin中的各个设置项下面是各个设置的解释:在列表中展开各个皮肤控...原创 2019-08-05 19:13:42 · 1377 阅读 · 0 评论 -
Unity3D 自定义风格组件
虽然系统已经提供了许多高级控件,但还是无法满足项目中的一些特殊需求,这时可以通过自定义风格组件来实现。在创建的“GUI Skin”中的“Inspector”视图中展开“Custom Style”下拉菜单项,然后在“Size”中输入修改自定义风格组件的数量,并为各个组件取名。然后可将各个自定义组件展开进行设置。示例1:未设置自定义组件using System.Collectio...原创 2019-08-05 19:47:42 · 1120 阅读 · 0 评论 -
Unity3D GUILayout
使用GUI绘制控件时,需要设置控件的Rect()方法,即设置控件的整体显示区域,如果控件内容长度发生变化,就会直接影响显示效果。GUILayout无需设定显示区域,它自动把所有控件以线性的排列方式(默认为垂直线性布局)显示在屏幕中,系统会自动计算显示区域,并保证它们不会重叠。大部分GUI控件都可以使用GUILayout进行绘制GUILayout有一套更强大的方式来设定控件的显示区域,即GU...原创 2019-08-05 20:33:42 · 1862 阅读 · 0 评论 -
Unity3D 字体设置
Unity支持所有的 .ttf 的字符集,默认的字体为Arial设置其它字体前,需要得到一个 .ttf 的字符集,获取的方法很多,可以在网上下载,或者复制本机电脑中的字符集。win10电脑中所有字体存放路径为:C:\Windows\Fonts,打开文件夹后,选择需要的字体,将其拖入unity当前工程资源的文件夹下。在“project”视图中选择“Creat” ==》“GUI Ski...原创 2019-08-05 20:58:08 · 7644 阅读 · 0 评论 -
Unity3D 碰撞与休眠
刚体的碰撞分为三种:进入碰撞、碰撞中和结束碰撞。下面是关于碰撞的三个系统方法:OnCollisionEnter():刚体与刚体刚开始接触时,立即调用此方法。 OnCollisionStay():刚体与刚体刚碰撞过程中,每帧都会调用此方法,直至碰撞结束。 OnCollisionExit():刚体与刚体刚停止接触时,调用此方法。休眠:让模型变为禁止。示例:如果有刚体与这个物体发生碰撞...原创 2019-08-21 21:00:39 · 1673 阅读 · 0 评论