从零开始的入门教程(二)----基本功能讲解

文章目录

一、教学目标

独立搭建出一个简单场景,并基于该场景开发一个简单的第一人称3D游戏

本次教学Demo已上传:,有需要自取

模型与音效包百度链接:

链接:

提取码:xvz8

注:以上百度链接可以完全不用下载,下面有详细获取与场景模型搭建方法

二、界面的摆放与介绍 1、界面移动及复原

这是界面中各个窗口的默认摆放位置,也是项目刚打开时候的样子

不过由于这样子摆放,平常工作的时候不是很方便。

1、场景窗口有些太偏,工作不是很舒服

2、游戏播放场景被折叠起来,不能实时看到游戏情况

所以,我们需要对各个窗口进行一下移动,让其看起来更舒服

(1)窗口移动方式

鼠标左键点击窗口名,拖拽移动窗口,左键提起放下窗口

随便拖拽就可以形成以上这样的效果

(2)窗口初始化方法

有时候窗口玩坏了怎么办?一键复原!

–>–>

2、平常工作界面 (1)转换成2 by 3类型 (2)最终工作窗口如下

移动并调整下各个窗口的宽高

令各个窗口摆放位置一般如下

3、各个窗口的中文名及其功能简述 二、游戏物体的创建与修改 1、创建一个正方体

向世界发出一声吧,世界在此刻将为你缓缓展开!

2、3D 介绍

3、3D 创建练习

最终目标图如下:

(1)创建Cube,,,,Quad依次排列

对象移动方式:

鼠标左键点击选定目标对象后,拖动坐标轴也就是那三个箭头,物体将沿着拖动的坐标轴移动鼠标左键点击选定目标对象后,拖动坐标系也就是那三个平面,物体将沿着拖动的坐标系移动

(2)创建放在中间

(3)创建一个Text

(4)创建一颗树

都摆放好即可完成创建与移动练习!

4、Cube 属性修改练习

在对Cube的组件修改之前需求先练习一下如下技巧。

(1)选定中的对象 (2)删除中的对象

界面有些嘈杂,我们将其他不是Cube和初始的和的对象删掉吧

(3)窗口基本操作练习

窗口纵深前进后退的方法:鼠标滚轮滚动 或 Alt+鼠标滚轮滚动,向前滚动窗口画面前进。向后滚动,窗口画面后退。

注:直接滚动,窗口视图是向中心前进。Alt+鼠标滚动则可以选择窗口视图向哪个方向前进

窗口上下左右移动的方法:鼠标滚轮摁住拖拽,鼠标前移,画面向上、鼠标左移,画面向左等等,其他方向同理

窗口以当前位置为旋转原点的角度旋转的方法:鼠标右键摁住拖拽,鼠标前移,画面向上旋转、鼠标左移,画面向左旋转等等,其他方向同理

窗口以窗口中心位置为旋转原点的角度旋转的方法:Alt+鼠标左键摁住拖拽,鼠标前移,画面向上旋转、鼠标左移,画面向左旋转等等,其他方向同理

窗口聚焦某个或某些对象在窗口中心的方法:选定目标对象/对象们,键盘按F

(4)Cube对象的组件修改

组件是整个中重要的组件之一,之后也是接触最多,且属性改变带来的视觉效果也很明显,所以对组件熟悉,可以从组件开始。

:在坐标系中的位置

:对象旋转的角度,逆时针为正,顺时针为负

:对象的大小

(5)Cube对象的组件属性快捷键修改

恭喜完成针对物体的操作课程!

三、常用功能与组件介绍与练习

在正式场景搭建前,还有一个功模块 导航器,需要学习:

1、 导航器

三视图

y轴:Top

z轴:

x轴:

2、场景布置常用操作与组件

在正式开始布置场景前,还需要注意:如何复制物体、光照设置、主摄像头、如何利用切换视图搭建场景

(1)复制物体

- 选定物体后 ctrl+d

注:复制物体后,窗口下的视图可能没有任何变化,这是因为二者重叠了。选定复制出来的物体,再移动一下就看到有两个了。

(2)光照设置 光照角度修改

注1:选定光源后,按E,然后视情况调整

注2:光源的位置,与大小,对光照效果没有任何影响,只需要调整角度即可

(3)主摄像头 将摄像头位置与角度,改为窗口视图

(4)利用切换视图与角点吸附搭建场景

如何在只能看到二维的画面情况下,搭建出完美符合自己审美要求的三维场景?三视图!

a、不断转换视角搭建场景

b、角点吸附搭建场景

四、搭建游戏场景,诸葛亮的八卦阵! 1、保存搭建地图参考图

我们开始搭建场景吧,以第二个图为主,中间的亭子就用一个胶囊体代替。

将第二个图片,另存为在电脑里面

2、新建空对象并改名与地面 3、将地图参考图 导入项目

4、创建Cube按照地图参考图摆放

完成北面墙壁的效果图如下:

5、生成迷宫预制体

为了让整个墙与地面成为一个整体,可以自由缩放,旋转而不影响结构,我们需要将其制成一个 预制体。

(1) 新建一个空物体命名为迷宫,并列入刚刚的建模模型

(2)将迷宫拖拽到文件夹内

迷宫预制体完成

注:预制体相当于一个自定义的一个结构,可以进行自带的立方体,椭圆,球一样的操作。以后发射子弹,自动生成敌人等都需要用到这种技巧。

五、玩家创建

游戏地图制备好了,第二步就是创建一个玩家。

玩家角色 是游戏的灵魂之一,单独的场景无法与游玩的人进行交互。需要通过玩家这一身份与场景进行交互,这样更有代入感一些。

1、玩家 !

我们就定义一个正方体为。当然也可以是其他的形状,或者人什么的。

2、创建一个实现玩家移动控制功能的C#文件

具体实现代码以及注解如下:

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
public class MoveControl : MonoBehaviour
{
    // Start is called before the first frame update
    //注:所有的有小数的数字后面都要加f,表示是float数据类型
    public float speed = 8.0f;
    public float Rotatespeed = 60.0f;
    void Start()
    {
        Application.targetFrameRate = 60;//设置帧率为60帧率
        //注:设置帧率为60帧,表示游戏会尽量把帧率往60帧靠近,不是固定60帧
    }
    // Update is called once per frame
    void Update()
    {
        KeyControl();
    }
   private void KeyControl()
    {
        //Translate是transform组件中自带的修改自身position属性的函数,在原有的基础上进行加处理
        //Time.deltaTime :记录每帧的用时
        //distance(一帧 移动距离)=speed(速度) * Time.deltaTime(一帧时间)
        //Translate(x,y,z,type):加的x,y,z值,由于一般设定z轴为前方,所以加z即可,Space.Self表示使用自身坐标系,这个下一章教材会讲解
        
        if (Input.GetKey(KeyCode.W))
        {
            this.transform.Translate(0, 0, speed * Time.deltaTime, Space.Self); //W 前进
            Debug.Log(speed * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.S))
        {
            this.transform.Translate(0, 0, -speed * Time.deltaTime, Space.Self);//S 后退
        }
        //Rotate是transform组件中自带的修改自身属性的函数,在原有的基础上进行加处理
        //逆时针为减法,顺时针加法
        //y轴是top,旋转一般是人头往左或往右,所以一般我们默认以y轴为旋转轴
        if (Input.GetKey(KeyCode.A))
        {
            this.transform.Rotate(0,  -Rotatespeed * Time.deltaTime, 0,Space.Self);//A逆时针旋转
        }
        if (Input.GetKey(KeyCode.D))
        {
            this.transform.Rotate(0, Rotatespeed * Time.deltaTime, 0, Space.Self);//A逆时针旋转
        }
    }
}

3、将脚本添加进

4、给添加刚体组件

5、第一人称摄像头设置 (1)让摄像头的与的一致

点击的,然后Ctrl+C复制

然后再点击Main 的 Ctrl+V粘贴

完成!

(2)调整下摄像头的角度与 of View 视场

(3)令Main 成为的子对象

六、游戏音效添加 1、免费音乐资源网站推荐

2、下载音乐,并将其加载进中 3、添加游戏音效 七、开始运行游戏与游戏导出 1、运行测试

修改:影响玩家的速度

修改:影响玩家的旋转速度

2、游戏导出

File —>

打开导出设置

八、结语

如果你能跟着做到这里,那么恭喜!成功入门了,下一节将开始更深入的各项功能与组件的使用,以及实现各类基础功能的脚本书写练习,模型导入与导出,最终实现一个使用开发的星战游戏Demo!

下期预告,星战前夜!