從零開始的unity3d入門教程(二)----基本功能講解
從零開始的入門教程(二)----基本功能講解
文章目錄
一、教學目標
獨立搭建出一個簡單場景,并基于該場景開發一個簡單的第一人稱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!
下期預告,星戰前夜!
聲明:本站所有文章資源內容,如無特殊說明或標注,均為采集網絡資源。如若本站內容侵犯了原著者的合法權益,可聯系本站刪除。