從零開始的入門教程(二)----基本功能講解

文章目錄

一、教學目標

獨立搭建出一個簡單場景,并基于該場景開發一個簡單的第一人稱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!

下期預告,星戰前夜!