精华内容
参与话题
问答
  • unity入门教学,新手教学,新手到大神的教学。。。

    首先声明一下,我用的Unity版本是4.6.6,编译环境是VS2010,其余的我会慢慢介绍,安装的过程这里我就不做讲解了,度娘那会做的比我详细。安装包可以在最下面的联系方式找我要,现在开始进入主题。
    打开Unity以后,我们先新建工程,这里要注意,一定要一个汉字都不能有,一定!避免出现不必要的Bug。
    这里写图片描述

    打开工程以后,就可以看到我们的Unity的操作界面。

    这里写图片描述

    这个我用着不方便,按照我个人的习惯,变成了这样的布局,当然这是个人喜好,可以不用模仿我。

    这里写图片描述

    那么这里每个模块的每个功能我就不一一介绍了,具体功能介绍我推荐给大家几本书,以供参考。

    这里写图片描述

    这里写图片描述

    首先看这里

    这里写图片描述

    快捷键从左至右为QWERT,功能为
    Q:调整视图
    W:移动工具
    E:旋转工具
    R:缩放工具
    T:选择工具
    鼠标右键为旋转视图,鼠标中键等于按下Q的左键操作。

    现在,我们来创建一个GameObject来练习如何操作Unity3D。

    首先,创建一个Cube。

    这里写图片描述

    然后调整到MainCamera能观看到的范围内。

    这里写图片描述

    在这里我要介绍一下MainCamera,这个是游戏的主摄像机,也就是说我们玩游戏的视图都是这个东西拍摄下来的游戏引擎里的游戏对象。因为,场景没有光源,所以MainCamera看到的东西比较暗,那么我们为场景添加光源,然后选中这个Cube按F2重命名为Floor,并将Floor通过缩放工具变成我们需要用的地板。

    这里写图片描述

    这里写图片描述

    下面我们在Floor的上方再新建一个Cube,作为我们的主角,命名为Player。

    这里写图片描述

    现在我们点击Unity上方像播放似的那个按钮,就是运行游戏,可以法线并没有什么变化,现在我们给主角添加刚体。—-Rigidbody
    并运行游戏。

    这里写图片描述

    这里写图片描述

    可以看到我们的Player掉到了Floor上,因为我们添加了物理引擎。他可以模拟重力,模拟碰撞、、、等等。

    下面开始用代码让我们的Player动起来吧!

    首先先创建C#脚本文件。

    创建脚本前以防我们的工程文件会很乱,所以我们要新建一些文件夹,为我们的资源分类,我分了这些类,并且创建了一个PlayerMove的C#脚本。

    这里写图片描述

    这里写图片描述

    双击用VS2010打开脚本。

    这里写图片描述

    下面我们开始写移动的代码。

    public class PlayerMove : MonoBehaviour {
    
        //定义移动的速度
        public float MoveSpeed = 2f;
        //定义旋转的速度
        public float RotateSpeed = 0.01f;
    
    
        void Start () {
    
        }
    
        void Update () {
    
            //如果按下W或上方向键
            if(Input.GetKey(KeyCode.W)||Input.GetKey(KeyCode.UpArrow))
            {
                //以MoveSpeed的速度向正前方移动
                this.transform.Translate(Vector3.forward*MoveSpeed*Time.deltaTime);
            }
            if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow))
            {
                this.transform.Translate(Vector3.back * MoveSpeed*Time.deltaTime);
            }
    
            //如果按下A或左方向键
            if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow))
            {
                //以RotateSpeed为速度向左旋转
                this.transform.Rotate(Vector3.down * RotateSpeed);
            } 
            if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))
            {
                this.transform.Rotate(Vector3.up * RotateSpeed);
            }
    
        }
    }

    把这个代码托给Player。

    这里写图片描述

    好了,运行游戏,你的Player已经可以移动了。

    这里写图片描述

    按下Ctrl+S保存场景,第一讲到此结束,未完待续。。。 。。。

    联系方式
    查看Aries的领英个人资料 查看Aries的个人资料

    QQ:531193915
    E_Mail:15210411296@163.com

    展开全文
  • 2018年什么游戏最火? 不用问,肯定是人人都在撸的“王者荣耀”和吃鸡游戏了。...Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综...

    2018年什么游戏最火?

    不用问,肯定是人人都在撸的“王者荣耀”和吃鸡游戏了。

     

    只会打游戏,不去研究可不行。一直在想,像王者荣耀这样火的游戏是用什么引擎和语言开发的?

    这里就不得不说到现在最主流的游戏开发引擎——Unity3D了。

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    相信做开发的人知道Unity3D,很多小伙伴也在找它的教程,今天我就分享一下Unity3D视频教程,希望能帮到大家。

    Unity3D基础视频

    http://yun.itheima.com/course/137.html?stt

    资料:http://pan.baidu.com/s/1eSDUbTo 密码:o97j

    课程介绍
    这是一套关于unity的基础课程,由传智大沙漠老师随堂录制。本套课程从C#语言开始,介绍了很多语言方面的特性,这些特性在unity开发及插件使用中都会出现。接下来是关于unity的操作,包括:模型、物理引擎、粒子系统、渲染、脚本生命周期、着色器、优化等知识点。通过学习这些内容,能够独立完成一些简单的游戏开发,并为接下来更高阶段的学习提供帮助。
    视频概况
    【第一天】
    讲解C#的基础知识,主要讲语法、面向对象两个知识点。如果你有C语言的开发基础,你会发现他们太像了,是的,语法非常相似。面向对象的三大特性:封装、继承、多态,会逐一讲解,并通过一些示例代码让你有更深入的理解。最后讲解了枚举与标志枚举的使用。
    【第二天】
    讲解常用的C#的类及函数。包括泛型、集合(List<T>与Dictionary<K,V>)、文件IO操作(主要是FileStream类)、Ado.Net(操作数据库),并以MySql数据库为例进行crud操作。
    【第三天】
    讲解C#的高级部分。包括:在函数的参数主要有3种方式传递,分别为:值传递,ref引用传递,out引用传递;关键字params实现参数的数组化;扩展方法的实现;委托与事件、lambda表达式的使用;线程的使用;最后讲解了单例、工厂、发布-订阅三种设计模式。
    【第四天】
    讲解C#的套接字Socket。以聊天室为示例,自定义传输协议,客户端能够收发信息,服务器端则负责将客户端发来的转发给其它客户端。主要讲解了Socket类的构造方法、Connet、Bind、Accept、Receive、Send等方法的使用。
    【第五天】
    讲解unity的知识点主要包括:坐标系;摄像机的投影方式;内置对象的使用;Scence面板的操作;用户接入;游戏对象的旋转、移动;预设与复制;导入模型;动态的两种方式Animation、Animator;在VS中调试。
    【第六天】
    讲解unity的知识点主要包括:光照及烘焙;第一人称与第三人称设置;地形系统;粒子系统;物理引擎中的刚体、碰撞检测、角色控制器。最终通过学习的知识点完成了打箱子、夏威夷漫游两个小示例。
    【第七天】
    讲解unity的知识点主要包括:音频的播放;预保存;资源加载;场景切换;协同调用;WWW类;寻路导航。在寻路中主要实现了自定义、水平跳、向下跳三种自定义移动方式,以及动态选择层。
    【第八天】
    讲解unity的知识点主要包括:GUI、uGUI、NGUI。重点介绍的是NGUI,通过NGUI可以制作图集、字体(结合BMFont)、交互脚本(以Button为例)、动画脚本(以宽高为例),最后完成了滚动栏、拖曳的效果。

     

    展开全文
  • 超详细的Unity UGUI教学

    2020-06-11 10:16:45
    前言:Unity版本为2019.2.9f1 Ppersonal。Unity版本可在上方Help下点击About Unity找到。本文介绍了Unity游戏开发中常见的UI实现方法,可通过目录快速跳转到你想看的内容。看完觉得有帮助的小可爱,还请动动小手点个...

    前言:Unity版本为2019.2.9f1 Ppersonal。Unity版本可在上方Help下点击About Unity找到。本文介绍了Unity游戏开发中常见的UI实现方法,是你学习Unity UGUI的不二之选,超级详细绝对干货!还可通过目录快速跳转到你想看的内容哦。看完觉得有帮助的小可爱,还请动动小手点个赞让更多人看到哦~~~

    常用操作

    Scene设置

    开发UGUI时,常选择ISO模型,即2D平面开发,然后右上角锁定界面防止镜头发生偏移,如图所示。
    在这里插入图片描述

    快捷键

    点击图片后按T可以进入Rect Tool编辑,如图所示。
    在这里插入图片描述
    其中四个角的实心点为拉伸点,中心空心点为pivot点,即自身坐标中心点。点击实心点后可以拖动,从而对图片进行自由拉伸;实心点间的连线也可以拖动,但是沿着连线垂直方向进行拉伸。按住中间区域可以拖动图片。

    点击图片的拉伸点时,同时按住一些键可以实现不同的拉伸效果。

    • 按住Shift键可以实现等比例拉伸,即图片长宽比保持不变。
    • 按住Alt键可以实现对称拉伸,即往某个方向拉伸多少,在其以图片中心为对称点的另一个方向也会拉伸多少。
    • 同时按住Shift和Alt键可以实现固定中心点的等比对称拉伸。

    Rect Transform组件参数

    在UGUI中,每一个UI控件都拥有自己的矩形区域。Rect Transform是UI控件独有的组件,它记录了UI控件的矩形区域在画布上的各种坐标信息,其参数如下。

    • Pos X、Y、Z:图片的pivot,即矩形区域的中心点相对于锚点的坐标。要注意的是,锚点是父物体矩形的锚点而不是Canvas的锚点。
    • Width、Height:矩形区域的长和宽,单位为像素。
    • Anchors
      • min X、Y:固定在父物体矩形左下角的归一化位置。
      • max X、Y:
    • Pivot:自身矩形区域的中心点在归一化后的数值。pivot点一般在原点,矩形区域的旋转和比例都是围绕pivot点计算的。
    • Rotation和Scale就不讲述了。

    图片Image

    在Hierarchy面板下右键,新建一个Image。
    在这里插入图片描述
    如下图所示,Unity会自动为你创建一个画布Canvas和Image图片,其在Game窗口的预览效果如下图空白方块所示。这里要提一点的是,所有的UI控件都必须放在Canvas下,否则在Scene窗口和Game窗口都无法看到,相当于是被隐藏起来了。
    在这里插入图片描述 在这里插入图片描述
    点击Image,如图为Image的Inspector面板,RectTransform组件就不做过多介绍了。
    在这里插入图片描述
    Image组件就使得该对象拥有Image的属性,即它为一个图片。

    Image参数

    Image的属性如下。
    在这里插入图片描述
    随便导入一张精灵图Sprite后会变成如图的样子。
    在这里插入图片描述
    在这里插入图片描述

    • Source Image:源图片。可以选择各种形式的图片放入,也可以选择精灵图Sprite。
    • Color:设置Image的颜色。
    • Material:设置Image的材质。比如你想让图片具有金属的光泽,拖入金属材质就好。
    • Raycast Target:是否作为射线检测的目标。有的UI是放置在游戏物体上而不是渲染到整个屏幕空间上的。因此如果你希望该Image可以给射线检测到,就勾选此选项。
    • Image Type:默认为Simple。后面两个属性都是Simple下的属性,这一部分放到下一小节介绍。
    • Use Sprite Mesh:是否使用精灵图网格。
    • Preserve Aspect:是否保持图片比例。勾选的话,在缩放图片时,图片的长宽比例是保持不变的,如下图所示。
      在这里插入图片描述 在这里插入图片描述
    • Set Native Size:将图片恢复到原始大小。

    Image Type图片类型

    在这里插入图片描述

    • Simple表示最简单不作任何处理的图片类型。
    • Sliced表示图片为切片类型。点击Source Image,定位到图片的源位置,不必和我使用同样的精灵图,如图所示。
      在这里插入图片描述
      点击Slot2->Sprite Editor,如图所示。 在这里插入图片描述
      进入了如图的精灵图编辑界面后,点击中间的精灵图,仔细看可以发现围绕在精灵图周围的四条,中间有个绿色点的绿色边框。
      在这里插入图片描述
      将上下左右的绿色边框往精灵图中间拖动,可以发现这四条线将整个精灵图切割成了九个部分。这便是Sliced图片类型的来源,即切片类型。这个切片的意义在于,对精灵图进行了切片后,对图片进行的拉伸不会影响到1、2、3、4这四个角落的部分;5、7(左右)两个部分仅进行上下拉伸;6、8(上下)两个部分仅进行左右拉伸;而9这个中间部分会上下左右都拉伸。Sliced类型常用于需要保持图片边框不变的场景,或是防止图片放大后的角落失真(因为角落不会被影响)。
      在这里插入图片描述
      点击右上角的Apply应用并保存后,回到Scene面板,将图片的Image Type改为Sliced。拖住图片的右下角进行拉伸,可以发现图片的边框就不再变化了。
      在这里插入图片描述
    • Tiled表示图片为平铺类型。图片在被拉伸后,精灵图会以原始大小填充拉伸后的区域,如图所示。
      在这里插入图片描述
      注意要让图片为平铺类型的话,就一定要先确保其没有被切片过,否则会导致平铺效果很奇怪。取消切片的方法是回到Sprite Editor,将右下角的Border边界值全部设为0,如图所示。
      在这里插入图片描述
    • 最后一个图片类型是Filled,即为填充类型。该类型将放在后面讲滑块时介绍。

    按钮Button

    创建Button

    在Hierarchy面板下右键,新建一个Button。
    在这里插入图片描述
    如下图所示,Unity会自动为你创建一个画布Canvas和Button按钮,其在Game窗口的预览效果如下图所示。Button中设置的是按钮的属性,而Button下的Text设置的是Button上的文本。
    在这里插入图片描述
    在这里插入图片描述
    点击Button,如图为Button的Inspector面板,可以看见,Button上还挂载了一个Image组件。说明Button其实是一个Image,但是其上有Button组件,因此具备了按钮的属性,可以被点击。因此创建Button还有另外一种方式:创建一个Image,然后为其添加Button组件即可。
    在这里插入图片描述

    Button 参数

    要注意,所有效果都必须是游戏运行时才会生效。
    在这里插入图片描述

    • Interactable :是否可以交互。取消勾选后Button就不能点击了,设置颜色也不会生效。
    • Transition :Button的过渡效果。是一个单选框,参数依次为无、着色过渡、精灵图调换过渡、动画过渡。
      在这里插入图片描述
    • Target Graphic:该组件的作用对象。UI控件实现效果的对象。
    • Normal Color:正常颜色。鼠标不在Button上时的颜色。
    • Highlighted Color:高亮颜色。鼠标在Button上时的颜色。
    • Pressed Color:按压颜色。鼠标点击Button时的颜色,松开后恢复。
    • Selected Color:被选颜色。鼠标点击Button时的颜色,松开后保持不变,除非点击Button外的界面。
    • Disabled Color:禁用颜色。禁用Button(Script)后的颜色。
    • Color Multiplier:颜色倍数。
    • Navigation :控件间导航。这个不用太了解。
    • Visualize:是否可视。点击后在Scene中显示出每个UI控件之间的顺序。
    • On Click() :给按钮添加响应事件。
    • Fade Duration:淡入淡出时间。

    为Button添加点击事件

    接下来讲一讲如何添加Button点击事件。
    首先在Hierarchy面板中创建一个空物体GameObject,然后在Project面板下创建一个新的C#脚本,命名为OnClickButton。将OnClickButton添加到GameObject上。
    在这里插入图片描述 在这里插入图片描述 在这里插入图片描述
    双击OnClickButton脚本,输入以下代码。该代码的作用是,点击按钮后,输出"You click the button.“和_printCount次"Yes”。

    using UnityEngine;
    
    public class OnClickButton : MonoBehaviour
    {
    	public void Click(int _printCount)
        {
            print("You click the button.");
            for (int i = 0; i < _printCount; ++i)
            {
                print("Yes!");
            }
        }
    }
    

    脚本创建好后,返回到Unity界面。在Button的Inspector面板最下方找到On Click(),点击右下角的加号,将GameObject拖入作为引用。然后就可以点击右边的No Function -> OnClickButton -> Click(int),从而将该方法作为为Button按下后调用的方法。
    在这里插入图片描述在这里插入图片描述
    选定方法后,就可以为方法设定传入的参数,这里要注意的是,Button按钮只能触发只含一个参数的方法,参数多了就无法指定参数了。将传入的参数设定为5,如图所示。
    在这里插入图片描述
    最后,运行游戏,点击Button,即可在Console面板看到"Yes"被打印了5次。
    在这里插入图片描述

    OnClick参数

    在这里插入图片描述
    首先是第一栏,点击后有个下拉框。Off表示该方法在按钮点击时不调用;Editor And Runtime表示即使没运行游戏时,点击Game窗口下的Button也会调用该方法;Runtime Ony就是前面介绍的实例一样,仅仅在Game运行时点击Button才会调用该方法。
    在这里插入图片描述
    No Function点击后也会出现多个选项。这些选项是该Button上的一些可以通过Button调用的方法,注意,如果想调用自定义的方法,必须声明为public,否则在Button是获取不到的。如果添加两次GameObject会怎样呢?如图所示。
    在这里插入图片描述
    在运行后,点击Button,会调用两次Click方法,如图所示,输出了10次"Yes"。
    在这里插入图片描述

    开关Toggle

    实例创建

    用一个如图所示的开关实例来讲解Toggle。
    在这里插入图片描述

    布局编辑

    新建一个Image,命名为Background_1,将其拉伸到如图大小,设置透明度为100。同时新建一个小Image,命名为Toggle_1,设置透明度为100。调整两个窗口的位置,在Toggle下新建一个Text,调整一下大小,文本输入为Toggle1。
    在这里插入图片描述
    在这里插入图片描述

    开关实现

    为Toggle_1添加Toggle组件,如图所示,将Background_1拖到Graphic上,不要管下面的Toggle_3是什么。
    在这里插入图片描述
    点击Play运行游戏,点击Game窗口下的Toggle1可以发现Background_1消失不见,再次点击又会出现,这就是开关的效果。
    在这里插入图片描述

    开关组的实现

    复制一个Toggle_1和Background_1,分别重命名为Toggle_2和Background_2。将Toggle_2的Toggle组件上的Graphic引用换为Background_2,同时将其下Text改为Toggle2。调整一下位置如图所示。
    在这里插入图片描述
    复制Toggle_1,改名为Toggle_3,去掉其上的Toggle组件,添加一个Toggle_3组件。同时选定Toggle_1和Toggle_2,将Toggle_3拖到它们Toggle组件的Group引用上,调整一下Toggle_3的位置如图所示。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    此时再观察Scene和Game界面会发现,两个背景只有一个在显示。点击Play运行游戏,分别点击Toggle1和Toggle2,可以发现,当我们点击其中任意一个时,另外一个背景也消失了。这就是开关组的效果。

    Toggle参数

    Toggle常用于实现开关控制,或者界面的切换。

    创建Toggle后在Hierarchy面板可以看到如图层级结构。其中Background是开关的背景图,Checkmark是被控制的图片,在Unity中默认为一个小对勾,Label则是开关名字。Toggle的本质是背景Image和受控Image,只不过其上添加了Toggle组件,从而使其拥有开关的属性,这也是开关的创建方式之一。
    在这里插入图片描述
    以前面实例中的Toggle_1为例,如图为Toggle组件的参数。
    在这里插入图片描述
    在Button中介绍过的参数就不过多介绍了。

    • Is On:游戏开始时开关是否开启。不勾选时,开关是关闭的。要注意的是,Toggle使受控对象消失并不是通过SetActive,具体是怎么实现的我暂时还不太清楚,知道后会来补更新。
    • Toggle Transition:开关的转换效果。None为无,即直接打开或关闭;Fade为淡入淡出,有一个过渡过程。
    • Graphic:受控制的对象。可以是任意GameObject。
    • Group:组。该开关所归属的组。
    • On Value Changed(Boolean):类似于Button中的On Click,在这里添加事件,可以使得开关被点击的同时触发一些事件。

    不过不同于Button的是,Toggle能触发的事件只有布尔值的改变。比如将Toggle3拖入Toggle的 On Value Changed(Boolean)中(先将Toggle1和Toggle的组解引用,即设为None)选择方法为GameObject->SetActive,运行游戏就能发现,点击Toggle1,Toggle3也会跟着消失,如图所示。
    在这里插入图片描述
    而在Hierarchy面板中,Toggle3已经被禁用了。
    在这里插入图片描述 在这里插入图片描述
    由此可见On Value Changed(Boolean)会改变列表中的对象的值。

    开关组Toggle Group参数

    开关组的作用在于实现数个开关的集中管控,如图是开关组的Inspector面板参数。
    在这里插入图片描述
    开关组内的开关,同一时间只能有一个打开;当勾选上Allow Switch Off时,同一时间运行所有开关都是关闭的,不勾选则至少保留一个开关是开启的(表现为,重复点击唯一 一个已经开启的开关,开关控制的对象不会消失)。开关组经常用于实现比如同一窗口下多个界面的切换的效果,比如背包栏的分类,不同的属性界面。

    滑动器Slider

    实例创建

    用一个如图所示的血条实例和技能CD实例来讲解Slider。
    在这里插入图片描述

    布局编辑 & 实现

    这个布局非常的简单,首先是血条的效果。新建一个Image,命名为Bloodbar_Background,然后在其下新建子Image,命名为Filled,然后将Filled的Color改为红色即可。两个物体都不需要为添加图片,用None就好。为Bloodbar_Background添加Slider组件,然后将Filled拖过去称为Fill Rect的引用。如图所示。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    点击Play运行游戏,然后点击血条的不同区域,就可以发现血条会跟着你点击的位置跑,同时,左右拖动鼠标,血条也会跟着移动。
    在这里插入图片描述 在这里插入图片描述

    接下来实现技能CD的效果。新建Image,随便添加一张什么方形图片,命名为为Skill_Background。同样的,在其下新建子Image,命名为Filled,同样可以随便添加一张方形图片。然后将它的颜色改为全黑,透明度改为100,差不多有那种技能处于CD(阴影)无法使用的感觉就好了,如图所示。
    在这里插入图片描述
    这种效果不需要用Slider,只需要将Filled的Image Type改为Filled即可,这也是为什么它既然要作为阴影,仍然需要添加Source Image的原因,因为只有Image可以实现为Filled。改为Filled之后,可以拖动下面的Fill Amount来观察阴影的旋转效果。如图所示。
    在这里插入图片描述
    在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

    Slider参数

    同所有的UI控件一样,Slider本质还是一个Image,只不过其上有个Slider组件而已。别看在Hierarchy面板下新建一个Slider,下面会有很多不认识的东西。实际上真正起作用的只有Slider,Fill以及Handle。而它们三个都只是Image,只不过Slider有着Slider组件,Fll是用于填充的对象,Handle是用于拖动的滑块,类似于推动器。
    在这里插入图片描述
    Slider组件面板如图所示。
    在这里插入图片描述
    在Button中介绍过的参数就不过多介绍了。

    • Fill Rect & Handle Rect:前面讲了,不过多介绍了。
    • Direction:滑动方向。见名知意,不过多介绍。
    • Min Value & Max Value:最小值和最大值。最小值最大值有助于数字化滑动的效果,比如血条的实现,就可以设置为最小值0,最大值100。
    • Whole Numbers:完整数字移动。勾选该项后,滑动器只会按照整数值的增加或减少,表现出来滑动时也是固定的面积或距离滑动。不会出现诸如0.5、5.2这种浮点值。为什么设置这个呢?想想使用能量条的英雄,他们的体力值就是整数的减少和增加。
    • Value:数值。这个就不用介绍了吧,自己调整一下就明白了。
    • On Value Changed(Single):暂不清楚。

    Image Type的Filled参数

    在这里插入图片描述
    在Image中介绍过的参数就不过多介绍了。

    由于参数会根据Fill Method改变,所以逐个介绍。
    在这里插入图片描述

    • Horizontal:水平方向填充。
    • Fill Origin:起始位置。Left表示从左往右填充,Right则相反。
    • Fill Amount:填充数,类似于Slider中的Value。0位无填充,1为全填充。
      在这里插入图片描述
    • Vertiacl:垂直方向填充。
      • Fill Origin:起始位置。Top表示从上往下填充,Bottom则相反。
        在这里插入图片描述
    • Radial 90:90度辐射填充。
    • Fill Origin:起始位置。比如Bottom Left-左下角,Bottom Right-右下角,Top Left-左上角,Top Right-右上角。
    • Clockwise:勾选后填充方向为顺时针。
      由此可知,Radial 90的填充方式,是以Fill Origin为圆心,顺时针(勾选Clockwise)或逆时针(不勾选Clockwise)方向扫描过去的填充。
      在这里插入图片描述
    • Radial 180:180度辐射填充。
      跟Radial 90的唯一区别在于Fill Origin,此时的圆心分别在各边的中心。
      在这里插入图片描述
    • Radial 360:360度辐射填充。
      圆心在图片的中心,也就是本小节技能CD效果的设置。

    滚动条Scrollbar

    实例创建

    用一个如图所示的公告实例来讲解Scrollbar。
    在这里插入图片描述

    布局编辑

    新建一个Image,命名为Note,代表公告。在其下新建两个Image,分别命名为Title和Content,分别代表着公告标题和公告内容。将它们的Color值都设置为(255, 255, 255, 20),稍微不透明即可。稍微调整一下大小后得到如图所示的效果。
    在这里插入图片描述
    游戏内的效果如图所示。
    在这里插入图片描述
    然后在Title下新建文本对象Text,文本内容输入"Note",字号颜色什么的自己都无关,自己调整即可。然后在Content下新建文本对象Text,这才是公告真正放置内容的地方。给Content的Text加入文本内容,多输入几行就好了。添加后的效果如图所示。
    在这里插入图片描述

    滚动条实现

    首先为Content添加Mask组件,该组件可以掩盖住超出Content区域的内容,所以在下方的字母就不显示了。而Show Mask Graphic勾选后,会显示Mask组件添加的对象,取消勾选后在Game下就看不到对象区域了。
    在这里插入图片描述
    添加Mask后的效果如图所示,可以看到下方的字母都被掩盖住了。
    在这里插入图片描述
    然后在Note下新建一个滚动条Scrollbar,将其Direction参数改为Bottom To Top,Size改为0.5。同时,为Content添加组件Scroll Rect组件,然后将Content下的Text以及Scrollbar拖拽过来作为引用,如图所示
    在这里插入图片描述
    从而便实现了公告滚动阅读的效果。

    ScrollBar参数

    创建ScrollBar后在Hierarchy面板可以看到如图层级结构。其中ScrollBar是滚动条的背景框,Handle是滑块。
    在这里插入图片描述
    在这里插入图片描述
    在Button中介绍过的参数就不过多介绍了。

    • Handle Rect:滚动器的矩形坐标。指定滚动条。
    • Direction:这个很有意思。要理解这里面的方向,都是指你向上滑动鼠标滚轮时,滚动条的移动方向。比如实现公告、网页等的滚动条向下移动的效果,你应该选择Bottom To Top,这样当你向上滑动鼠标滚轮时,滚动条是上移的;反过来就会向下移了。
    • Value:值。可以根据方向判断,0的值永远在左边一个方向。比如你选择的是Bottom To Top,那么Value为0时滚动条处于Bottom。
    • Size:滚动条的长度。调整没用,它会根据你指定的滚动内容自动改变。
    • Number Of Steps:步数。具体不清楚,会回来更新的。

    ScrollRect参数

    ScrollRect(滚动框)组件的应用场景是:不需要用到滚动条,但需要实现滚动效果时。要注意的是,滚动条必须配合ScrollRect使用,真正实现滚动效果的是ScrollRect,ScrollBar只是实现一个条状的滚动图片而已。
    在这里插入图片描述

    • Content:内容。指定一个需要实现滚动效果的对象。
    • Horizontal & Vertical:设置滚动方向,水平还是垂直。
    • Movement Type:滚动的类型。Unrestricted,无限制,滚动无边界限制;Elastic,有弹性,滚动到边界时,如果继续滚动,会在边界不断地“拉扯”;Clamped,限制边界,滚动到边界时不能够再进行滚动。
      在这里插入图片描述
    • Inertia:是否有惯性。勾选后,快速滚动突然停下时,仍然会滚动一小段距离。
    • Deceleration Rate:减速率。类似于减速加速度,越大惯性越小,因为滚动。
    • Viewport:还不太清楚。
    • Horizontal Scrollbar:指定一个水平滚动条。
    • Vertiacl Scrollbar:指定一个垂直滚动条。
    • Visibility:滚动条的可见度。Permanent,滚动条一直显示;Auto Hide,自动隐藏;Auto Hide And Expand Viewport,还不太清楚。
      在这里插入图片描述
    • On Value Changed(Vector2):以后再来更新。

    看完觉得有帮助的小伙伴请点个赞收藏一下哦~~~

    展开全文
  • Unity教程学习

    千次阅读 2018-10-15 16:39:17
    学习Unity有一段时间了,最近有空闲,重头学习一遍教程,做下记录,仅以此篇纪念。 教程的学习主要以操作步骤和说明为主。

    教程1.Roll-a-ball

    需求说明:通过键盘输入控制,上下左右等按钮,控制小球移动。移动小球收集物体,统计分数。

    1).创建游戏

    1.1 新建项目

    打开unity页面,选择NEW,然后输入项目名,选择保存的位置,选择3D模式。
    创建新项目图

    1.2 新建场景

    左上方菜单栏File–New Scene,点击后,会再Hierarchy窗口看到一个场景,如下。
    新场景
    在上图蓝色选中条的右边的设置按钮,点击选择‘Save Scene As’,然后选择保存的位置并输入场景名称。保存完成后可在Project窗口中看到。
    保存的场景

    1.3 新建地面与配置Material

    菜单GameObject–3D Object–Plane,将会在场景里创建一个只有一个面的平面游戏对象,并修改名称(window平台F2)为Ground。选中该plane对象,在Inspector窗口中,Transform组件的右上方,齿轮按钮,选择Reset,这将会让Ground对象的位置等参数初始化。然后将Transform的Scale参数设置 X=2 Y=1 Z=2。注:plane对象的Y参数只分正负,正数是指向向Y轴正方向的一面可见,背面不可见,负数则相反。
    下面是设置Ground的显示效果,材质Material设置。
    新建文件夹(此不是必须的),Project窗口Create–Folder创建文件夹,重命名为Materials。
    Create–Material创建材质球,重命名为MatGround。选择该材质球,在Inspector窗口,点击MainMaps下的Albedo右边的颜色按钮,配置颜色为RGBA 0 32 64 255.
    配置颜色
    接下来为Ground设置材质球。
    方法一:选中Project下的MatGround材质球,按住拖动到Hierarchy下的Ground游戏对象上,之后Ground会变成我们设置的材质。
    方法二:选中Hierarchy下的Ground,在Inspector窗口的MeshRenderer组件上,有一个参数Materials,选中,设置其的Size为1,Element0参数设置,点击右边的小圆点,在列表中选择MatGround材质球。

    1.4 新建小球与重设位置

    Hierarchy窗口Create–3D Objec–Sphere创建一个球的游戏对象,重命名为Player,并Reset初始化。小球理应让其在地面之上,所以我们要设置小球的位置,不改变球的大小(Scale)。因为scale为(1,1,1),而地面位置为(0,0,0),让小球的最小面在地面之上,所以小球应该上移scale的Y的值的一半0.5。故设置position为(0,0.5,0)。

    2).小球的移动控制

    玩家控制小球在游戏区域内移动,碰到墙壁后不会跑出去,不会飞出去,碰到收集的物体,能收集物体。可以运用unity的物理系统,将用户的输入信息转换到小球控制上。

    2.1添加rigidbody

    Hierarchy窗口选中Player游戏对象,在Inspector窗口,最下方AddComponent–Physics–Rigidbody,添加刚体组件,因为对象已经有Collider组件(SphereCollider),可以触发物理碰撞等。

    2.2添加控制脚本

    同样的操作AddCmponent–New Script在弹出的小窗口输入自定义的脚本名称PlayerCtr,选择下方的Create and Add,等新脚本创建后,新建一个文件夹Scritps,然后将PlayerCtr脚本移动到文件夹下,方便控制。
    添加新脚本

    2.3小球移动控制

    双击PlayerCtr脚本打开编辑,建议使用visualStudio打开,设置请自行上网查找。

    2.3.1输入控制

    获取用户输入信息,因为我们只需要在平面上移动,所以我们只控制前后左右,上下不做控制。

    float moveHorizontal = Input.GetAxis("Horizontal");
    float moveVertical = Input.GetAxis("Vertical");
    

    Input是Unity的输入系统,关于调用的方法,可以通过visualStudio的联想和unity说明文档查找。GetAxis(string axisName)方法,参数是名称,名称可以在Unity的InputManager中查看,可从以下路径进入,菜单Edit–Project Settings–Input,会在Inspector窗口里显示InputManager设置面板。
    moveHorizontal 是水平左右输入值,正表示右,负表示左。
    moveVertical是水平前后输入值,正表示前,负表示后。

    2.3.2刚体控制

    小球移动运用unity物理系统,所以我们通过控制rigidbody,来实现控制小球移动。需要在我们的脚本PlayerCtr中获取刚体组件,对刚体组件操作,可通过查找文档来确定rigidbody调用的方法。

    2.3.2.1 获取刚体组件

    生成的脚本PlayerCtr继承至MonoBehaviour,存在Start(),Update()方法,这些方法可通过查找MonoBehaviour生命周期了解其调用,触发机制和前后顺序。
    在这里插入图片描述
    Start()为脚本调用的第一帧,只会执行一次,我们可以在Start里获取刚体组件。由于后面每一帧都要对刚体进行操作,把刚体变量声明成成员变量是最好的选择。

    private Rigidbody RigPlayer;
    

    在Start()中获取组件并赋值

    void Start ()
    {
      RigPlayer = GetComponent<Rigidbody>();
    }
    
    2.3.2.2 刚体运动控制

    每一帧都要对刚体进行控制,控制代码放在Update(),或FixedUpdate()中,其中FixedUpdate()适用于物理体系的调用,所以把刚体控制代码放在FixedUpdate()中。
    刚体的运动,是给刚体施加推力,查阅可得方法AddForce(Vector3 force, ForceMode mode = ForceMode.Force),或者public void AddForce(float x, float y, float z, ForceMode mode = ForceMode.Force)。
    采用前一个,Vector3是3维向量,因为我们用户只有输入左右前后,所以,我们改变x和z,y始终为0,即竖直方向上不给施加额外的推力(rigidbody本身可以设置是否有重力)。同样Vector3我们也可以把它独立成成员变量。

    private Vector3 VecDirec = Vector3.zero;
    
    private void FixedUpdate()
        {
            float moveHorizontal = Input.GetAxis("Horizontal");
            float moveVertical = Input.GetAxis("Vertical");
            VecDirec.x = moveHorizontal;
            VecDirec.z = moveVertical;
            RigPlayer.AddForce(VecDirec);
        }
    

    Play模式测试,会发现运行速度不行,不满足,那我们就需要调整vector3的x和z的值,通过给其一个倍数来控制,为了方便修改,这个倍数用public的成员变量来设置,这样可以在Inspector可视化修改其值。修改后如下。

    public float Speed;
    
    private void FixedUpdate()
    {
       float moveHorizontal = Input.GetAxis("Horizontal");
       float moveVertical = Input.GetAxis("Vertical");
       VecDirec.x = moveHorizontal*Speed;
       VecDirec.z = moveVertical*Speed;
       RigPlayer.AddForce(VecDirec);
    }
    

    可视化修改值
    到此,小球的移动控制已经完成。

    3).相机跟随

    场景里有个MainCamera游戏对象,其上挂着Camera组件,这是用户看到的画面效果,也就是Game中的效果,我们需要让镜头跟随小球移动。
    先调整MainCamera的位置角度,position设置为(0,10,0),旋转设置Rotation为(45,0,0)。
    处理方法一,不是合理的方法,但可以提供一个思路,把MainCamera对象拖动到Player小球对象下面,让其依附于小球。但是从Play模式下会发现问题,小球旋转,镜头跟着旋转,这样完成找不到方向。毫无体验感可言。我们的需求只是镜头跟随小球移动,但是镜头不做旋转。所以MainCamrera还是独立,给其添加一个控制脚本来实现该跟随功能。
    选中MainCamera游戏对象,AddComponent–New Script输入新脚本名称CameraCtr,将新脚本移至Scripts文件夹,打开编辑。
    初始化时先获取方向

    	/// <summary>
        /// 小球Player的Transform
        /// </summary>
        public Transform TraPlayer;
        private Vector3 offset;
    	// Use this for initialization
    	void Start () {
            offset = transform.position - TraPlayer.position;
    	}
    

    然后每一帧更新MainCamera的位置,对相机的操作,代码应该放在LateUpdate中。

    private void LateUpdate()
        {
            transform.position = TraPlayer.position + offset;
        }
    

    记得将Player小球挂载到MainCamera对象的脚本的的TraPlayer参数上(在MainCamera对象的Inspector窗口)。

    4).创建游戏区域

    需要4面墙壁来挡住小球,防止小球跑出地面区域,为了方便管理,先创建一个空游戏对象并初始化位置,重命名为Wall。
    Create–Create Empty,在Inspector中Transform进行Reset,F2重命名。
    墙壁总控制
    创建第一个墙壁,Create–3D Object–Cube,初始化位置后,设置scale为(0.5,2,20.5),这是左右墙的设置,重命名为EastwardWall。接下来再Scene视图中,选中该墙壁,选择菜单栏下的第二个按钮,将墙壁移动到合适位置,最后在微调Position为(10,0,0)。把该墙壁移到Wall对象下面。
    方向按钮
    复制墙壁对象(菜单Edit–Duplicate或者选中墙壁,快捷键ctrl+D),修改名称,移动,修改数值,最终形成合围的4面墙,统一放在Wall对象下管理。注意,前后墙壁可以通过改变Rotation的Y为90实现旋转。
    墙壁效果图
    由于该游戏中,地板和墙壁都是不会动态改变移动,旋转,拉伸的,所以可以设置为静态,以地面为例,选中Ground对象,在Inspector页面,右上方有个static勾选按钮,勾选。或者在其下拉中选择需要的静态选项。
    静态勾选

    5).收集对象

    5.1创建收集预制品

    收集对象要让用户感觉到,要与其他的做区别,怎么突出显示呢?在不考虑性能情况下,要突显出来。一是收集物设置成运动的,二是颜色区别。
    创建收集物体的游戏对象。Create–3D Object–Cube,初始化Reset,重命名为Collection。设置位置,使其悬空,高于地面。设置角度,使其倾斜(45,45,45)。
    设置成运动状态。添加一个新脚本RotationCtr,因为没有物理力的作用,所以在Update里更新旋转角度。

     private Vector3 VecRot = new Vector3(15, 30, 45);
     void Update () {
            transform.Rotate(VecRot*Time.deltaTime);
    	}
    

    为了让其平滑的运动,每一帧运动的角度要跟每一帧的时间做处理。Time.deltaTime是上一帧到这一帧的时间。
    颜色处理。收集物体要跟地面,墙壁,小球做区分,所以最好用不同颜色处理。直接复制原来的地面的材质球,新的材质球更改颜色,在给收集物添加该材质。
    收集物体
    做成预制品保存,进行复用。在Project窗口新建文件夹Prefabs,然后将Collection收集物体对象拖动到Prefabs文件夹下,这样就会形成一个收集物预制品。复制收集物,调整位置,形成一个圆。

    5.2收集物体

    小球碰到收集物后,收集物被收集,则要从镜头里消失。涉及几点,一碰撞检测,二收集物体的消失控制。

    5.2.1碰撞检测

    基于unity的物理系统,碰撞检测是通过rigidbody和collider碰撞器检测的。从之前情况看到,小球碰到收集物会被弹开,但是我们需要的是碰到收集物体后,不会影响小球原先的运动,所以在收集物的碰撞器我们需要做额外处理,让其有碰撞的基础,同时又不触发物理碰撞。
    其实这就是将碰撞器变成触发器,将BoxCollider上的IsTrigger勾选上,这样该对象就变成一个触发器,不会发生物理的碰撞反弹之类的效果。另外,地板,墙壁之类的一定时碰撞器不是触发器。
    触发器

    5.2.2收集物的消失控制

    IsTrigger勾选后,变成触发器,我们需要获取触发器被触发的情况,这个可以在小球的脚本上去控制,因为小球挂了rigidbody,小球碰到触发器,会在其下的脚本调用有关触发器的方法,下面这几个是3D 触发器触发的方法,分别是进入触发器时调用,离开触发器时调用,处在触发器中调用且只要在触发器中,会一直调用。

    	private void OnTriggerEnter(Collider other)
        {}
        private void OnTriggerExit(Collider other)
        {}
        private void OnTriggerStay(Collider other)
        {}
    

    因为我们在一接触就要让收集物体消失,所以需要Enter的方法。还需要考虑一个,如果又多种触发器,我们怎么区分时碰撞到哪一种,解决方法是,给触发器的游戏对象加上Tag标签,通过对比tag来区分。
    tag标签
    最后是消失控制,如上图,tag标签上面是游戏对象的名称还有一个勾选,勾选状态就是对象的显示控制。选中,该对象就是显示状态,不选中,就是消失,隐藏状态。
    整理一下,就是在小球脚本上对private void OnTriggerEnter(Collider other)方法里处理。其中参数other是小球接触到的触发器,通过other对比tag,方法是Component上的CompareTag(参数)参数是tag的字符串。对符合要求的other,执行消失操作。也就是调用GameObject的SetActive方法。代码如下。

    private void OnTriggerEnter(Collider other)
        {
            if(other.CompareTag("Collection"))
            {
                other.gameObject.SetActive(false);
            }
        }
    

    另外,页面上需要做一些处理,新增触发的tag,为收集物体的预制品添加tag。
    新增。任意选中一个游戏对象,点击Tag的名称,再下拉菜单中点击Add Tag。。。在tag页面中点击+,新增一个tag,输入新增的名称。
    新增Tag
    在收集物体预制品上,同样点击tag名称,下拉菜单选择刚才新增的tag,注意这个名称要跟脚本的的CompareTag的参数是一样的。

    5.2.3物理性能优化

    unity的物理系统,对动态和静态的性能消耗是又差别的。动态的物理对象是添加了Collider和rigidbody的游戏对象,静态的是添加了Collider,没有rigidbody且一直在改变(位置,选择,大小拉伸)的游戏对象。
    收集的物体对象一直在旋转,但它是静态的,性能上,静态的会将一些信息保存到缓存中,由于一直在运动,所以每一帧都要将信息重新缓存到缓存里,这会造成额外的性能开销。因为动态的,信息一直在动态更新,不会做缓存。为了减少这部分缓存性能开销,我们要把静态的设定,改成动态的。
    改成动态的,最简单的是为这些收集物体增加rigidbody,并修改rigidbody的一些设置,使其不会有物理属性,而是作为触发器存在。
    方法一:取消rigidbody的UseGravity,这样作为触发器的收集物体就不会因为重力而往下掉落,因为是触发器,会穿过地面。但是这个设置还是会收到物理力的影响。
    方法二:勾选IsKinematic,这样物体会变成动态的,不受物理力影响,但是其形状大小等改变之类的,受到脚本影响。通过脚本修改Transform或动画等控制。
    至此游戏控制基本完成,剩下分数统计之类的其余功能。

    6).分数统计胜利提示

    收集了物体后,需要对分数进行统计并显示,全部收集完成后,显示胜利。

    6.1分数统计与显示

    在Player上的PlayerCtr脚本里对收集的分数进行统计。
    声明并初始化。

    private int count = 0;
    

    收集到物体后,增加分数,最简单处理,一个收集物体增加1。

    private void OnTriggerEnter(Collider other)
        {
            if(other.CompareTag("Collection"))
            {
                other.gameObject.SetActive(false);
                ++count;
            }
        }
    

    分数显示,在Hierarchy窗口,Create–UI–Text。会创建三个对象,Canvas是存放UI的父对象,EventSystem是UI的事件系统。还有一个Text是文本UI。我们把分数放到左上角显示。
    首先颜色改为白色。
    字体颜色设置
    位置设置到左上方,并留一定边距。
    在这里插入图片描述
    将文字内容删除。然后再脚本里初始化和显示文字。在PlayerCtr显示设置共有变量。记的要将Text对象拖动到改变量上,挂载上去。

    public Text TxtCount;
    

    初始化。

    TxtCount.text = "count:" + Count.ToString();
    

    在收集到收集物体后,更新显示内容,因为代码一样,可以抽离出来,处理成独立的方法。在初始化和更新分数时调用该方法。

    public void SetCountText()
        {
            TxtCount.text = "count:" + Count.ToString();
        }
    

    6.2胜利显示

    在所有收集物体被收集完成后,显示胜利。这需要另外一个文本显示。操作类型,新建Text,设置位置,颜色大小等,脚本控制初始化和胜利显示。

    TxtWin.text = string.Empty;
    

    在收集触发方法里,更新胜利显示。

    if(Count>=12)
    {
       TxtWin.text = "You Win!";
    }
    

    功能脚本代码如下

    	private int Count = 0;
    	public Text TxtCount;
    	public Text TxtWin;
    	// Use this for initialization
    	void Start () {
            RigPlayer = GetComponent<Rigidbody>();
            SetCountText();
            TxtWin.text = string.Empty;
    
        }
        private void OnTriggerEnter(Collider other)
        {
            if(other.CompareTag("Collection"))
            {
                other.gameObject.SetActive(false);
                ++Count;
                SetCountText();
            }
        }
        public void SetCountText()
        {
            TxtCount.text = "count:" + Count.ToString();
            if(Count>=12)
            {
                TxtWin.text = "You Win!";
            }
        }
    

    注:代码编写完成,记得把对象挂载到对应变量上。

    7).打包

    菜单File–Build Setttings在页面里点击AddOpenScene或者把目标场景拖到上部的框里,下面根据需求选择平台。各个平台需要设置一些基础信息,请自行查找。

    展开全文
  • Unity3D游戏引擎最详尽基础教程

    万次阅读 2018-06-27 15:23:06
    我一直向所有想做游戏的朋友推荐Unity3D,为什么呢?首先是因为专业,Unity3D非常强大,用它创建一个类似MiniGore这样的3D平面射击游戏简直轻而易举,而就连使命召唤这样的大型3d游戏,如果素材得当也不在话下。二是...
  • unity3d每年都更新一个大版本,更新的速度越来越快,而现在不论是线上教程还是市面上的书籍基本上都是unity3d 5.x的版本,现在unity3d已经到了 2018的大版本了,里面增加了非常多的新功能。鉴于周围对unity3d感兴趣...
  • unity3d文件反编译工具

    千次下载 热门讨论 2011-06-23 17:33:39
    反编译 unity3d文件 点击'new project'选择要反编译的文件。 先点‘New project’选择unity3d文件,再点'Unpack Web Archrive in a directory'选择导出的文件夹。
  • 每周更新unity3d视频教程,从入门到就业,官方unity3d培训,上千门实时更新课程,供学员在线观看学习,unity3d游戏开发,可以让学员随时随地学习! 免费网上学习unity3d自学教程,国内名师机构专业授课,O基础快速学习,1小时...
  • Unity3D入门教程】Unity3D简介、安装和程序发布

    万次阅读 多人点赞 2017-01-06 11:22:19
    Unity3D是一个跨平台的游戏开发引擎,它能够帮助开发者快速构建游戏场景,进行游戏开发与发布。它支持将开发好的作品发布到Windows、Mac OS、Android、iOS、Linux等多种平台。另外,Unity3D官方版本目前可以运行在...
  • 本文介绍了Unity3D界面及游戏对象基本操作。
  • Unity3d的安装

    万次阅读 2019-06-19 09:46:45
    Unity3d的安装 ** 1.在线安装 a.获取在线安装程序 第一步:进入官网:https://unity.com/cn 第二步:在主页的底部点击下载 第三步:来到UnityStore,拖到该页面的最底部,点击资源下面的Unity旧版本 第四步:来到Unity...
  • Unity3d与android进行交互,使用Fragment来展示Unity3d的视图,在android视图与Unity3d视图之间相互切换。
  • 关于Unity和Android的互相调用,网上的教程太多了,大同小异,抄来抄去。这次我就尝试着慢慢来,讲讲我的理解(简单的我会一笔带过,网上可以轻松找到答案,就不赘述了),希望大家看的时候并不是秉承着“拿来主义”...
  • WinForm内嵌Unity3D

    万次阅读 热门讨论 2015-11-17 17:55:35
    Unity3D可以C#脚本进行开,使用vstu2013.msi插件,可以实现在VS2013中的调试。在开发完成后,由于项目需要,需要将Unity3D嵌入到WinForm中。WinForm中的UnityWebPlayer Control可以载入Unity3D。先看效果图。 一、...
  • [Unity3d]unity与html通信

    万次阅读 2013-12-01 00:33:12
    更多教程请访问: http://dingxiaowei.cn/ ...下面简单谈谈通过Unity3D调用HTML网页的脚本函数,以及通过HTML网页调用Unity3D中的脚本函数。 1.1Unity3D浏览器调用HTML网页中的函数 Unity3D浏览...
  • Unity3D 2018安装教程

    万次阅读 2019-06-15 21:39:17
    安装步骤: ...Unity2018.3.0相较2017版本的在启动时稳定了很多(2017版本启动经常会卡在loading界面) 如果启动Unity2018.3.0时一直卡在loading界面进不去,可以尝试以下两种解决办法: 1.1:将计算...
  • Unity3DUnity3D证书

    千次阅读 2019-02-13 15:08:05
    一、前言 话说,英语有英语等级证书,计算机也有等级证书,会计证,工程师证,那么从事Unity开发的工程师,有没有专属的职业资格证书呢。这个还是有的,分别有以下几...Unity3D美术师 Unity Certified 3D Artist ...
  • Unity3d设置成中文版

    万次阅读 多人点赞 2019-09-25 11:33:57
    效果图: 要求:版本V > 2018.2或以上版本 步骤①: 下载中文语言包:链接:... ... 打开unity安装文件夹(我的是):C:\Program Files\Unity\Editor\Data,如果此文件夹下没有Localization就...
  • [size=medium]分享一个unity3d的网盘地址,各个版本挺全的。 unity3d官网的下载速度太慢,打算在这里把百度网盘的unity3d下载地址列一下,不断更新 unity3d 完整版本汇总下载:[url]...
  • [Unity3D]Unity3D游戏开发之截屏保存精彩瞬间

    万次阅读 热门讨论 2014-09-10 20:28:00
    各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/...比如博主在写《[Unity3D]Unity3D游戏开发之自由视角下的角色控制》和《[Unity3D]Unity3D游戏开发之角色控制漫谈》这两篇
  • Unity3D学习笔记(2)Unity3D与3DMax结合开发注意事项 单位:比例统一 在建模型前先设置好单位,在同一场景中会用到的模型的单位设置必须一样,模型与模型之间的比例要正确,和程序的导入单位一致,即便到程序...
  • [Unity3D]Unity3D 游戏开发之碰撞检测

    万次阅读 2014-04-07 12:43:03
    今天我们来一起来学习Unity3D中一个很重要的概念:碰撞。为什么说碰撞很重要呢?因为在游戏中无时无刻不充满碰撞啊,在飞行类游戏中我们需要判断炮弹是否击中了敌人,在RPG游戏中我们需要判断玩家是否对敌人造成了...
  • Unity3d】200个插件免费分享(所有资源已上传)

    万次阅读 多人点赞 2012-10-27 00:25:37
    接触U3D有段时间了,积累了点插件、资源、学习网站、论坛等,现在整理下,跟广大同仁们分享下! 所有资源已经上传完毕,约5G。 200个插件免费分享 【下载链接】  ...注:这份资源比较旧了,参考意义其实不大了,...
  • http://www.cnblogs.com/hejianchun/articles/3089543.html
  • unity3d安卓打包教程

    千次阅读 2019-04-18 10:51:53
    unity3d安卓打包教程
  • Unity3D简介

    千次阅读 2016-09-13 10:13:04
    Unity3D简介
  • Unity3DUnity3D 手指任意拖动物体

    千次阅读 2018-06-12 14:57:13
    手指拖动物体,也是交互中比较常见的一种操作,那么就让我们来看看怎么实现吧 首先看看实现效果吧 接下来说一下实现步骤 1. 新建一个Cube,设置好物体的坐标大小 2. 新建脚本Drag.cs,叫脚本Drag.cs挂在Cube...
  • 很多人都会Unity3D中调用网页中的js,反过来就一头雾水。 其实也很简单 在HTML中添加下面的代码: var u = new UnityObject2(); u.initPlugin(jQuery("#unityPlayer")[0], "XXX.unity3d");//XXX为生成出来的...
  • Unity3d中实现点击目标点,然后出现引路线段,动态更新线段等功能 主要用到组件:NavMeshAgent参数就不全部说明了,就说几个重要的吧 Steering->Speed <1>这个是设置自动寻路的速度的,可以把这个值...
  • Unity3D安装教程

    千次阅读 2017-02-20 10:55:56
    Unity官网下载链接 ...第一个为个人免费版,作为学习完全够用。... Unity3D安装 附属一些功能:Visual Studio为脚本编辑器必需安装;其他为导出插件,比如导出安卓应用,就选择安

空空如也

1 2 3 4 5 ... 20
收藏数 110,111
精华内容 44,044
关键字:

unity教学