2017-07-17 00:44:38 xingxinmanong 阅读数 3539
  • unity3D 六周带你开发《王者荣耀》

    本课程介绍如何使用unity3D 制作一款5V5MOBA爆款手游《王者荣耀》,教程详细讲解了王者荣耀4大核心功能点,其中包括unity常用界面的讲解使用、动画机的使用、防御塔的制作、战斗场景的搭建、小兵的制作、子弹移动控制、英雄的制作及开始/局结束界面制作、技能实现、血条制作、UI页面使用、商店背包制作等等。

    3113 人正在学习 去看看 朱润

五大界面

Unity 有五大界面,scene(场景)、game(游戏)、project(项目)、hierarchy(层级)、inspector(检查员)。

Scene

Scene 界面是游戏场景设计界面,一个场景是游戏的一个显示单位,如战斗场景,欢迎场景,设置场景等。场景中的每个物体都有一个三维,unity 的坐标系是左手坐标系,即 x 轴向右,y 轴向上,z 轴就向里。

场景界面

  • shaded(遮蔽处)下拉框可以选择场景的显示方式,shaded 是以实体方式显示,wireframe(线框) 是以线框方式显示,还有一些其它的显示方式,在引擎中试试就知道了。

  • 2D 按钮是控制场景以 2D 方式显示还是 3D 方式,默认没选中表示是 3D 方式,选中后场景会以 2D 方式显示,摄像机的视图变成平行视图。

  • 光线按钮是控制场景光线是否启用,如果启用,则可以在场景中看到运用光线之后的效果,则显示场景真实角度的光线,而不是游戏呈现出来的效果。此操作不会影响真实游戏的光线效果,只影响在场景界面中的显示效果。

  • 音频按钮是控制场景中是否播放音频,此操作同样不影响游戏实际运行效果,只控制场景中音频是否播放。

  • 右边这个图片下拉框是控制其它物体在场景中是否显示,同样只针对场景,不影响游戏运行效果。skybox 是控制场景是否显示天空盒,fog 是控制场景是否显示雾效果,flare(闪耀)是控制场景是否运用镜头光晕效果,animated meterials(动画材料),image effects(图片特效)。

  • gizmos(小玩意)按钮是控制场景是否显示一些物体,比如 3D icon 控制场景是否以 3D 的方式来显示音频,摄像机这些图标。show grid 是控制场景中的物体是否显示网格。

  • 上面那五个按钮是对选中物体或场景的控制按钮,分别是平移场景,平稳物体,旋转物体,缩放物体和 2D 控制,对应的快捷键分别是 QWERT。另外,还有一些快捷键
    • 选中一个物体,把鼠标放在在 Scene 界面中,按 F 键可以把视野切到选中物体身上。
    • 滚动鼠标中键可以缩放场景显示
    • 按钮鼠标中键移动也可以平衡场景
    • 按住 alt 键的同时按钮鼠标左键移动可以自由角度的旋转场景
    • 按住鼠标右键移动也自由角度的旋转场景
    • 按钮鼠标右键的同时配合快捷键可以漫游场景,按 w 是镜头前进,按 s 是镜头后退,按 a 是镜头左移,按 d 是镜头右移,按 e 是镜头上升,按 q 是镜头下降。
    • 再过来的那个按钮是控制同时选中多个物体时操作点的中心,center 是以所有物体的共同的中心,pivot(中心点)是以每个物体各自的中心。
    • 再过来的按钮是控制物体的坐标系是全局的还是局部部的,global 表示坐标系是全局的,物体旋转时坐标系不会旋转,物体与坐标系之间的角度出现不一致;local 表示坐标系是相对于本身的,物体旋转时坐标系也会跟着旋转,坐标系与物体之间一直保持着原来的角度。

Game

game 界面是游戏运行时的显示界面,对 scene 界面的修改都会时时同步到 game 界面。

游戏界面

  • Display 下拉框是控制以几个摄像机进行渲染,默认是一个,即默认摄像机。
  • 第二个下拉框是控制渲染界面的分辨率,free aspect 表示填满界面。
  • 下一个滑动条是控制渲染界面的缩放比例
  • Maximize on Play 选中时,游戏一运行就会全屏显示
  • Mute(沉默的) Audio 选中时,游戏运行不会播放音频
  • Stats(统计)控制是否显示运行信息面板
  • Gizmos 和 scene 的 Gizmos 一样,控制是否显示一些物体。

Project

项目界面用于显示和管理项目中的文件,是真实存在的文件,与操作系统的资源管理器一一对应,在 project 界面上添加和删除文件,资源管理器上也会同步。虽然在资源管理器上操作增删文件也会同步到 unity 中,但最好在 unity 中操作,更不易出错。project 的根目录是 assets 目录,对应到资源管理器就是 项目根目录/assets

项目界面

  • create 下拉框可创建各种资源,也可使用菜单栏的 Assets/Create 按钮。
  • 右边是一个搜索框,可以快速找到某个资源,默认按名称搜索,右边那两个按钮分别是按类型和按标签探索。

Hierarchy

Hierarchy 界面列出当前打开场景的所有物体,这些物体保存在场景文件中,在资源管理器上不会有这些物体的单独文件,所以这些物体可以说是虚拟的文件,这点与 Project 下的文件有所不同。

层级界面

  • create 下拉框可创建各种物体,也可使用菜单栏的 GameObject 下面的各个物体按钮。
  • 右边是一个搜索框,当输入物体名称进行搜索时,Hierarchy 界面只显示搜索到的物体,其它的物体会被隐藏,同时 Scene 界面会把没搜索到的物体变成灰色,突出显示搜索到的物体。

Inpector

在 Scene 中选中一个物体,Inspector 会显示出该物体的所有组件。

组件界面

  • 最上面的 Account 选项卡是开发者账号管理。
  • 右边的 Layers 选项卡显示或隐藏某些层上的物体,也可以锁定某个层。
  • 再过去的选项卡是设置 unity 界面的布局。
  • 下面这一栏设置是否显示物体,设置物体名称,是否静态物体。
  • 再下来的一栏是给当前物体设置标签和所属层,也可以打开层-标签管理面板,管理标签和层。
  • 接下来就是该物体所拥有的所有组件,每个物体都会有一个最基础的组件,就是 Transform 组件,这个组件控制物体的位置,旋转和缩放。
  • 最下面的按钮是添加组件按钮,也可以使用菜单栏的 Componet 按钮来添加。
2019-05-17 21:38:30 zxm_jimin 阅读数 4827
  • unity3D 六周带你开发《王者荣耀》

    本课程介绍如何使用unity3D 制作一款5V5MOBA爆款手游《王者荣耀》,教程详细讲解了王者荣耀4大核心功能点,其中包括unity常用界面的讲解使用、动画机的使用、防御塔的制作、战斗场景的搭建、小兵的制作、子弹移动控制、英雄的制作及开始/局结束界面制作、技能实现、血条制作、UI页面使用、商店背包制作等等。

    3113 人正在学习 去看看 朱润

Unity3D_最简单的开始界面_结束界面

开始界面

1、创建一个新的场景
添加button
在这里插入图片描述
2、C#脚本
LoadingGame.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LoadingGame : MonoBehaviour
{
    public void LoadGame()
    {
        Application.LoadLevel("mianScene");
    }
}

3、建一个空对象
将LoadingGame.cs拖入
在这里插入图片描述
在这里插入图片描述
4、添加到button中
在这里插入图片描述
5、在Building Settings中加入两个场景

在这里插入图片描述

然后就可以尝试运行啦~

结束界面

同理——结束界面
endGame.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class endGame : MonoBehaviour
{
    public void EndGame()
    {
        UnityEditor.EditorApplication.isPlaying = false;
        Application.Quit();
    }
}

调用

Application.LoadLevel("endGame");
2017-03-17 15:48:52 JeterPong 阅读数 4628
  • unity3D 六周带你开发《王者荣耀》

    本课程介绍如何使用unity3D 制作一款5V5MOBA爆款手游《王者荣耀》,教程详细讲解了王者荣耀4大核心功能点,其中包括unity常用界面的讲解使用、动画机的使用、防御塔的制作、战斗场景的搭建、小兵的制作、子弹移动控制、英雄的制作及开始/局结束界面制作、技能实现、血条制作、UI页面使用、商店背包制作等等。

    3113 人正在学习 去看看 朱润

网上罗集了一些资料,这里用两种方式实现登录界面效果。 (GUI 和 GUILayout 两种方法实现) (~ ̄▽ ̄)~

编译环境:Win 10 + Unity 5.5.1f

新建脚本(C#):

private string editUsername;
private string editPassword;

private string editTitle;

void Start(){
    editTitle = "登录界面";
    editUsername = "请输入账号";
    editPassword = "请输入密码";
}

void Update(){

}

void OnGUI(){
    // 1.GUILayout 实现 -- 活动模式
    GUILayout.BeginArea(new Rect(10, 20, 200, 150));

    GUILayout.Label(editTitle);

        GUILayout.BeginHorizontal();
        GUILayout.Label("账号:");
        editUserName = GUILayout.TextField(editUserName,16, GUILayout.Width(150));
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        GUILayout.Label("密码:");
        editPassword = GUILayout.PasswordField(editPassword, "*"[0],16, GUILayout.Width(150));
        GUILayout.EndHorizontal();

    if(GUILayout.Button("登录")){
        // 处理 登录事件
    }

    GUILayout.EndArea();

    // 2. GUI 实现 -- 固定模式
    /*
    GUI.Label(new Rect(80,10, Screen.width, 80), editTitle);
    if(GUI.Button(new Rect(20, 120, 60, 35), "Login")){
        // 处理登录 事件
    }
    GUI.Label(new Rect(20,40,100, 50), "账号:");
    GUI.Label(new Rect(20,80,100, 50), "密码:");

    editUsername = GUI.TextField(new Rect(60, 40, 150, 30), editUsername, 20);
    eidtPassword = GUI.PasswordField(new Rect(60, 80, 150, 30), editPassword, 16);
    * */
}

效果图:
1. GUILayout 实现:
GUILayout_function

2.GUI 实现
GUI_function

由图可以看出,这两种实现方法的区别:
1. GUILayout 是自动适配区域宽度大小(若不指定宽度),并且是自动排版
2. GUI 是指定区域,指定大小的排版。(根据自己的需求,自定义排版)

备注:

        /*
         * GUI.TextField() 参数
         * arg0: position  -- 用于文本字段在屏幕上的矩形的位置
         * arg1: text      -- 显示的编辑文本,这个函数返回值应该 赋值回给字符串
         * arg2: maxLength -- 控制字符串的最大长度,如果不设置 ,用户可以一直输入
         * arg3: style     -- 使用样式,如果不设置,文本字段的样式将应用当前的GUISkin 皮肤
         * 最后 返回被编辑的字符串
         * */

         /* GUI.PasswordField() 参数 
         position            用于文本字段在屏幕上矩形的位置。 
         Password            编辑的密码,这个函数返回值应该赋回给字符串,看下面的例子。 
         maskChar            用于密码的字符遮罩。 
         maxLength           控制字符串的最大长度,如果不设置用户可以一直输入。 
         style               使用样式,如果不设置,密码字段的样式将应用当前的GUISkin皮肤。 
         最后 返回被编辑的密码。 
         * */ 

更新(2017/3/20):
重新修改了一下 GUI 固定模式的 登录界面实现,效果看起来还可以,登录后实现隐藏 登录界面。符合设计要求。o( ̄▽ ̄)d~

更新代码如下:

GUI.BeginGroup(new Rect(Screen.width/2 -50, Screen.height/2 -100, 300, 300)); // 设置固定区域大小
        GUI.Box(new Rect(0, 0, 250, 200), editTitle); // 叠加效果


        GUI.Label(new Rect(30, 160, 150, 30), editTips);
        if (GUI.Button(new Rect(20, 120, 60, 35), "Login"))
        {
            // Click the button to change the tips info

            if (editUserName == "Jeter" && editPassword == "123")
            {
                editTips = "Login success";
                GUILayer.Destroy(this); // 销毁 当前GUI 层
            }
            else
            {
                editTips = "Login failure";
            }
        }

        GUI.Label(new Rect(20, 40, 100, 50), "账号:");
        GUI.Label(new Rect(20, 80, 100, 50), "密码:");

        // Get the inputs content
        editUserName = GUI.TextField(new Rect(60, 40, 150, 30), editUserName, 15);
        editPassword = GUI.PasswordField(new Rect(60, 80, 150, 30), editPassword, "*"[0], 15);

        GUI.EndGroup();

效果图显示:
登录界面:
GUI_Login

登录失败:
GUI_LoginFailure

登录成功后(销毁了)):
GUI_LoginSuccess

2016-07-01 23:26:55 ywjun0919 阅读数 2005
  • unity3D 六周带你开发《王者荣耀》

    本课程介绍如何使用unity3D 制作一款5V5MOBA爆款手游《王者荣耀》,教程详细讲解了王者荣耀4大核心功能点,其中包括unity常用界面的讲解使用、动画机的使用、防御塔的制作、战斗场景的搭建、小兵的制作、子弹移动控制、英雄的制作及开始/局结束界面制作、技能实现、血条制作、UI页面使用、商店背包制作等等。

    3113 人正在学习 去看看 朱润
在开发过程中不可避免的会遇到界面比较复杂的情况,会导致游戏卡顿(甚至打开一个界面需要花费好几秒),影响游戏效果。近两天对游戏中一个非常卡顿的界面进行了优化。
优化前:打开界面进行所有的资源加载和操作。
优化后:打开界面直加载必要的资源
      ①:对于资源一次加载较多,但是不需要立即显示的部分使用延迟加载的方法,即 仅加载能立即看到的部分,其他部分延迟加载(分批加 载也要注意平衡视觉效果与效率) 。这样做的原理是将同一帧需要的内存分配分配到多帧去,均分一帧上的内存压力。
       ②:加载和操作必须的内容。对不需要立即显示或操作的界面不要进行任何操作。仅当需要使用的时候进行操作,减少加载。
        ③:界面有更新的时候,仅进行局部刷新,而不是笼统的对整个界面进行刷新。就像看网页一样,只想需要的部分进行更新,而不是刷新整个页 面,即低效又没有好的体验。

优化对比图:

优化前:



优化后(内存分配分散了):



2014-04-25 23:11:59 u012276084 阅读数 2691
  • unity3D 六周带你开发《王者荣耀》

    本课程介绍如何使用unity3D 制作一款5V5MOBA爆款手游《王者荣耀》,教程详细讲解了王者荣耀4大核心功能点,其中包括unity常用界面的讲解使用、动画机的使用、防御塔的制作、战斗场景的搭建、小兵的制作、子弹移动控制、英雄的制作及开始/局结束界面制作、技能实现、血条制作、UI页面使用、商店背包制作等等。

    3113 人正在学习 去看看 朱润

     在我们学习Unity3D之前,我们要保障Unity3D已安装并且正确的安装了,在我们安装的文件夹下有两个文件夹,一个是Editor,用于Unity3D的编辑,另一个文件夹是MonoDevelop,用于我们的脚本编写。(微笑友情提示:Unity3D要正确安装哟,Unity3D简称U3D)

     下面我们就进入U3D的界面学习,看图:

下面我就不一一对每个菜单项进行详细的说明,做个简单的介绍,相信大家都知道它的意思。

文件菜单 主要有新建场景、打开场景、保存场景、另存为、新建工程、打开工程、保存工程等。

编辑菜单 主要有剪切、复制、粘贴、删除、查找、选择所有、播放、暂停、逐步调试、工程设置、渲染设置、网络、图像清晰度等的设置。

资源菜单 主要有创建(创建脚本、预制体、材质、物理材质等存放于工程目录)、导入新的资源、导入包、到处包、刷新等。

游戏对象按钮 主要有创建空对象、创建其它对象(比如:立方体、球体、胶囊、平面、圆柱体、地形、各种灯光、玩具、照相机、风、粒子效果等)等。

组件阿牛 主要有效果、物理引擎、声音、脚本、渲染等。

窗口按钮 主要有切换下一个窗口、切换上一个窗口、布局、场景、游戏、清单、工程、监视面板、动画、版本控制、动作等。

帮助按钮 主要是U3D的关于,更新,错误报告、商店、帮助等。


层次清单:工程所创建的对象,便于管理

工程资源:工程的所有资源

监视面板:主要是对象的属性


编辑场景:能够观察场景中所有的物体,并且可以调整物体的位置,大小,旋转等

游戏场景:玩家所真正能够看到的画面


如果以上内容有纰漏,请纠正,谢谢配合!敲打

敬请期待下一章!奋斗

没有更多推荐了,返回首页