'讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色'

Unity引擎 鼠標 攝像放像機 寒酒仙 2019-07-23
"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你是處女座或者強迫症患者,可能已經因為下面的紅色警告符號心神不寧了~

Don’t panic,這裡的紅色警告絕對不是因為你的操作而導致的,而且它並不會影響到項目的運行。這裡我們暫時選擇無視就好。

注意:

有些紅色警告代表項目中的資源或代碼存在一定的問題,這裡無視不代表以後遇到類似的情況一概無視。

考慮到我們這款遊戲是第一人稱視角的,所以需要找到一個第一人稱視角的遊戲角色,然後把他/她放到遊戲場景之中。

那麼這個角色在哪裡呢?

在Project視圖中找到Standard Assets->Characters->FirstPersonCharacter->Prefabs這個目錄,裡面有兩個藍色圖標的文件,分別是FPSController和RigidBodyFPSController,這就是我們想要的。

那麼這兩種角色有什麼區別呢?在後面講到物理引擎的時候你就會明白,這裡我們選擇第一個FPSController。

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你是處女座或者強迫症患者,可能已經因為下面的紅色警告符號心神不寧了~

Don’t panic,這裡的紅色警告絕對不是因為你的操作而導致的,而且它並不會影響到項目的運行。這裡我們暫時選擇無視就好。

注意:

有些紅色警告代表項目中的資源或代碼存在一定的問題,這裡無視不代表以後遇到類似的情況一概無視。

考慮到我們這款遊戲是第一人稱視角的,所以需要找到一個第一人稱視角的遊戲角色,然後把他/她放到遊戲場景之中。

那麼這個角色在哪裡呢?

在Project視圖中找到Standard Assets->Characters->FirstPersonCharacter->Prefabs這個目錄,裡面有兩個藍色圖標的文件,分別是FPSController和RigidBodyFPSController,這就是我們想要的。

那麼這兩種角色有什麼區別呢?在後面講到物理引擎的時候你就會明白,這裡我們選擇第一個FPSController。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

順便提一下,在之前的課程內容中我們曾經提到過Unity中一個非常重要的概念Prefab,也就是預設體。

這裡再重溫一下什麼是預設體。

Prefabs是一個遊戲對象及其組件的集合,目的是使得遊戲對象可以被重複使用。

這麼描述或許有點抽象,一個形象的比喻是,預設體就好比模板,我們可以使用預設體在場景中快速創建一個具有特定組件屬性值的遊戲對象。

這裡的FPSController就是一個第一人稱視角角色控制器的預設體。

感興趣的童鞋可以左鍵單擊FPSController,在Unity編輯器右上角的Inspector視圖中會出現一個Open Prefab按鈕,點擊後就可以看到這個預設體對象的詳細屬性設置了。

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你是處女座或者強迫症患者,可能已經因為下面的紅色警告符號心神不寧了~

Don’t panic,這裡的紅色警告絕對不是因為你的操作而導致的,而且它並不會影響到項目的運行。這裡我們暫時選擇無視就好。

注意:

有些紅色警告代表項目中的資源或代碼存在一定的問題,這裡無視不代表以後遇到類似的情況一概無視。

考慮到我們這款遊戲是第一人稱視角的,所以需要找到一個第一人稱視角的遊戲角色,然後把他/她放到遊戲場景之中。

那麼這個角色在哪裡呢?

在Project視圖中找到Standard Assets->Characters->FirstPersonCharacter->Prefabs這個目錄,裡面有兩個藍色圖標的文件,分別是FPSController和RigidBodyFPSController,這就是我們想要的。

那麼這兩種角色有什麼區別呢?在後面講到物理引擎的時候你就會明白,這裡我們選擇第一個FPSController。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

順便提一下,在之前的課程內容中我們曾經提到過Unity中一個非常重要的概念Prefab,也就是預設體。

這裡再重溫一下什麼是預設體。

Prefabs是一個遊戲對象及其組件的集合,目的是使得遊戲對象可以被重複使用。

這麼描述或許有點抽象,一個形象的比喻是,預設體就好比模板,我們可以使用預設體在場景中快速創建一個具有特定組件屬性值的遊戲對象。

這裡的FPSController就是一個第一人稱視角角色控制器的預設體。

感興趣的童鞋可以左鍵單擊FPSController,在Unity編輯器右上角的Inspector視圖中會出現一個Open Prefab按鈕,點擊後就可以看到這個預設體對象的詳細屬性設置了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你是處女座或者強迫症患者,可能已經因為下面的紅色警告符號心神不寧了~

Don’t panic,這裡的紅色警告絕對不是因為你的操作而導致的,而且它並不會影響到項目的運行。這裡我們暫時選擇無視就好。

注意:

有些紅色警告代表項目中的資源或代碼存在一定的問題,這裡無視不代表以後遇到類似的情況一概無視。

考慮到我們這款遊戲是第一人稱視角的,所以需要找到一個第一人稱視角的遊戲角色,然後把他/她放到遊戲場景之中。

那麼這個角色在哪裡呢?

在Project視圖中找到Standard Assets->Characters->FirstPersonCharacter->Prefabs這個目錄,裡面有兩個藍色圖標的文件,分別是FPSController和RigidBodyFPSController,這就是我們想要的。

那麼這兩種角色有什麼區別呢?在後面講到物理引擎的時候你就會明白,這裡我們選擇第一個FPSController。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

順便提一下,在之前的課程內容中我們曾經提到過Unity中一個非常重要的概念Prefab,也就是預設體。

這裡再重溫一下什麼是預設體。

Prefabs是一個遊戲對象及其組件的集合,目的是使得遊戲對象可以被重複使用。

這麼描述或許有點抽象,一個形象的比喻是,預設體就好比模板,我們可以使用預設體在場景中快速創建一個具有特定組件屬性值的遊戲對象。

這裡的FPSController就是一個第一人稱視角角色控制器的預設體。

感興趣的童鞋可以左鍵單擊FPSController,在Unity編輯器右上角的Inspector視圖中會出現一個Open Prefab按鈕,點擊後就可以看到這個預設體對象的詳細屬性設置了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在FPSController這個預設體中有很多組件,不同的組件給它提供了不同的功能和特性。考慮到大家還是小白,這裡我們就先不展開講FPSController預設體所有組件的詳細作用了。

好了,我們已經有了一個代表玩家角色的預設體。

那麼接下來問題來了,我們如何在遊戲場景中使用預設體呢?

有兩種方式,一種是所見即所得,只需要將預設體從Project視圖中拖動到場景中就好了。

另一種方式是通過代碼來手動生成預設體的實例對象。考慮到我們還沒學過C#,第二種方式有點難為大家了。那我們挑個簡單點的方式,用第一種方式好了。

左鍵單擊FPSController不放,拖動到Scene視圖或是Hierarchy視圖中,然後鬆開鼠標。

可以看到,在場景中的某個地方(取決於你鬆開鼠標的那一刻)會看到一個綠色線框一樣的東西,上面還有一個喇叭圖標和一個攝像機圖標。這個就是我們的主角了~

是不是有點失望?其實這是因為我們選擇的是第一人稱視角,所以它的主要作用之一就是提供了一個攝像機。

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你是處女座或者強迫症患者,可能已經因為下面的紅色警告符號心神不寧了~

Don’t panic,這裡的紅色警告絕對不是因為你的操作而導致的,而且它並不會影響到項目的運行。這裡我們暫時選擇無視就好。

注意:

有些紅色警告代表項目中的資源或代碼存在一定的問題,這裡無視不代表以後遇到類似的情況一概無視。

考慮到我們這款遊戲是第一人稱視角的,所以需要找到一個第一人稱視角的遊戲角色,然後把他/她放到遊戲場景之中。

那麼這個角色在哪裡呢?

在Project視圖中找到Standard Assets->Characters->FirstPersonCharacter->Prefabs這個目錄,裡面有兩個藍色圖標的文件,分別是FPSController和RigidBodyFPSController,這就是我們想要的。

那麼這兩種角色有什麼區別呢?在後面講到物理引擎的時候你就會明白,這裡我們選擇第一個FPSController。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

順便提一下,在之前的課程內容中我們曾經提到過Unity中一個非常重要的概念Prefab,也就是預設體。

這裡再重溫一下什麼是預設體。

Prefabs是一個遊戲對象及其組件的集合,目的是使得遊戲對象可以被重複使用。

這麼描述或許有點抽象,一個形象的比喻是,預設體就好比模板,我們可以使用預設體在場景中快速創建一個具有特定組件屬性值的遊戲對象。

這裡的FPSController就是一個第一人稱視角角色控制器的預設體。

感興趣的童鞋可以左鍵單擊FPSController,在Unity編輯器右上角的Inspector視圖中會出現一個Open Prefab按鈕,點擊後就可以看到這個預設體對象的詳細屬性設置了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在FPSController這個預設體中有很多組件,不同的組件給它提供了不同的功能和特性。考慮到大家還是小白,這裡我們就先不展開講FPSController預設體所有組件的詳細作用了。

好了,我們已經有了一個代表玩家角色的預設體。

那麼接下來問題來了,我們如何在遊戲場景中使用預設體呢?

有兩種方式,一種是所見即所得,只需要將預設體從Project視圖中拖動到場景中就好了。

另一種方式是通過代碼來手動生成預設體的實例對象。考慮到我們還沒學過C#,第二種方式有點難為大家了。那我們挑個簡單點的方式,用第一種方式好了。

左鍵單擊FPSController不放,拖動到Scene視圖或是Hierarchy視圖中,然後鬆開鼠標。

可以看到,在場景中的某個地方(取決於你鬆開鼠標的那一刻)會看到一個綠色線框一樣的東西,上面還有一個喇叭圖標和一個攝像機圖標。這個就是我們的主角了~

是不是有點失望?其實這是因為我們選擇的是第一人稱視角,所以它的主要作用之一就是提供了一個攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

接下來我們先來了解Unity編輯器中的另外一個重要視圖-Game視圖。

它的作用是顯示玩家在遊戲中所看到的內容,畫面經過場景中的相機進行渲染後呈現在視圖上。和場景Scene視圖不同的是,展示在遊戲Game視圖區的畫面將是玩家實際看到的畫面。

點擊Scene視圖標籤右邊的Game標籤,就會看到玩家視角會看到的畫面了。

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你是處女座或者強迫症患者,可能已經因為下面的紅色警告符號心神不寧了~

Don’t panic,這裡的紅色警告絕對不是因為你的操作而導致的,而且它並不會影響到項目的運行。這裡我們暫時選擇無視就好。

注意:

有些紅色警告代表項目中的資源或代碼存在一定的問題,這裡無視不代表以後遇到類似的情況一概無視。

考慮到我們這款遊戲是第一人稱視角的,所以需要找到一個第一人稱視角的遊戲角色,然後把他/她放到遊戲場景之中。

那麼這個角色在哪裡呢?

在Project視圖中找到Standard Assets->Characters->FirstPersonCharacter->Prefabs這個目錄,裡面有兩個藍色圖標的文件,分別是FPSController和RigidBodyFPSController,這就是我們想要的。

那麼這兩種角色有什麼區別呢?在後面講到物理引擎的時候你就會明白,這裡我們選擇第一個FPSController。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

順便提一下,在之前的課程內容中我們曾經提到過Unity中一個非常重要的概念Prefab,也就是預設體。

這裡再重溫一下什麼是預設體。

Prefabs是一個遊戲對象及其組件的集合,目的是使得遊戲對象可以被重複使用。

這麼描述或許有點抽象,一個形象的比喻是,預設體就好比模板,我們可以使用預設體在場景中快速創建一個具有特定組件屬性值的遊戲對象。

這裡的FPSController就是一個第一人稱視角角色控制器的預設體。

感興趣的童鞋可以左鍵單擊FPSController,在Unity編輯器右上角的Inspector視圖中會出現一個Open Prefab按鈕,點擊後就可以看到這個預設體對象的詳細屬性設置了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在FPSController這個預設體中有很多組件,不同的組件給它提供了不同的功能和特性。考慮到大家還是小白,這裡我們就先不展開講FPSController預設體所有組件的詳細作用了。

好了,我們已經有了一個代表玩家角色的預設體。

那麼接下來問題來了,我們如何在遊戲場景中使用預設體呢?

有兩種方式,一種是所見即所得,只需要將預設體從Project視圖中拖動到場景中就好了。

另一種方式是通過代碼來手動生成預設體的實例對象。考慮到我們還沒學過C#,第二種方式有點難為大家了。那我們挑個簡單點的方式,用第一種方式好了。

左鍵單擊FPSController不放,拖動到Scene視圖或是Hierarchy視圖中,然後鬆開鼠標。

可以看到,在場景中的某個地方(取決於你鬆開鼠標的那一刻)會看到一個綠色線框一樣的東西,上面還有一個喇叭圖標和一個攝像機圖標。這個就是我們的主角了~

是不是有點失望?其實這是因為我們選擇的是第一人稱視角,所以它的主要作用之一就是提供了一個攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

接下來我們先來了解Unity編輯器中的另外一個重要視圖-Game視圖。

它的作用是顯示玩家在遊戲中所看到的內容,畫面經過場景中的相機進行渲染後呈現在視圖上。和場景Scene視圖不同的是,展示在遊戲Game視圖區的畫面將是玩家實際看到的畫面。

點擊Scene視圖標籤右邊的Game標籤,就會看到玩家視角會看到的畫面了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

之前沒有讓大家切換到Game視圖,是因為在outpost on desert這個場景中,默認情況下並沒有提供攝像機,所以如果有好奇心比較重的寶寶切換過去,可能會看到類似下面的畫面。

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你是處女座或者強迫症患者,可能已經因為下面的紅色警告符號心神不寧了~

Don’t panic,這裡的紅色警告絕對不是因為你的操作而導致的,而且它並不會影響到項目的運行。這裡我們暫時選擇無視就好。

注意:

有些紅色警告代表項目中的資源或代碼存在一定的問題,這裡無視不代表以後遇到類似的情況一概無視。

考慮到我們這款遊戲是第一人稱視角的,所以需要找到一個第一人稱視角的遊戲角色,然後把他/她放到遊戲場景之中。

那麼這個角色在哪裡呢?

在Project視圖中找到Standard Assets->Characters->FirstPersonCharacter->Prefabs這個目錄,裡面有兩個藍色圖標的文件,分別是FPSController和RigidBodyFPSController,這就是我們想要的。

那麼這兩種角色有什麼區別呢?在後面講到物理引擎的時候你就會明白,這裡我們選擇第一個FPSController。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

順便提一下,在之前的課程內容中我們曾經提到過Unity中一個非常重要的概念Prefab,也就是預設體。

這裡再重溫一下什麼是預設體。

Prefabs是一個遊戲對象及其組件的集合,目的是使得遊戲對象可以被重複使用。

這麼描述或許有點抽象,一個形象的比喻是,預設體就好比模板,我們可以使用預設體在場景中快速創建一個具有特定組件屬性值的遊戲對象。

這裡的FPSController就是一個第一人稱視角角色控制器的預設體。

感興趣的童鞋可以左鍵單擊FPSController,在Unity編輯器右上角的Inspector視圖中會出現一個Open Prefab按鈕,點擊後就可以看到這個預設體對象的詳細屬性設置了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在FPSController這個預設體中有很多組件,不同的組件給它提供了不同的功能和特性。考慮到大家還是小白,這裡我們就先不展開講FPSController預設體所有組件的詳細作用了。

好了,我們已經有了一個代表玩家角色的預設體。

那麼接下來問題來了,我們如何在遊戲場景中使用預設體呢?

有兩種方式,一種是所見即所得,只需要將預設體從Project視圖中拖動到場景中就好了。

另一種方式是通過代碼來手動生成預設體的實例對象。考慮到我們還沒學過C#,第二種方式有點難為大家了。那我們挑個簡單點的方式,用第一種方式好了。

左鍵單擊FPSController不放,拖動到Scene視圖或是Hierarchy視圖中,然後鬆開鼠標。

可以看到,在場景中的某個地方(取決於你鬆開鼠標的那一刻)會看到一個綠色線框一樣的東西,上面還有一個喇叭圖標和一個攝像機圖標。這個就是我們的主角了~

是不是有點失望?其實這是因為我們選擇的是第一人稱視角,所以它的主要作用之一就是提供了一個攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

接下來我們先來了解Unity編輯器中的另外一個重要視圖-Game視圖。

它的作用是顯示玩家在遊戲中所看到的內容,畫面經過場景中的相機進行渲染後呈現在視圖上。和場景Scene視圖不同的是,展示在遊戲Game視圖區的畫面將是玩家實際看到的畫面。

點擊Scene視圖標籤右邊的Game標籤,就會看到玩家視角會看到的畫面了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

之前沒有讓大家切換到Game視圖,是因為在outpost on desert這個場景中,默認情況下並沒有提供攝像機,所以如果有好奇心比較重的寶寶切換過去,可能會看到類似下面的畫面。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在Game視圖中還可以通過頂部的Display選擇和Free Aspect選項來切換顯示的畫幅,通過Scale來縮放遊戲畫面,並設置是否在預覽遊戲時最大化畫面顯示(Maximize On Play)、是否關閉音效(Mute Audio)、是否顯示某些特定的組件(Gizmos)等選項。對於開發者來說,這裡有個非常重要的Stats選項,打開它之後可以看到遊戲當前的性能表現,這個選項是非常有用的。

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你是處女座或者強迫症患者,可能已經因為下面的紅色警告符號心神不寧了~

Don’t panic,這裡的紅色警告絕對不是因為你的操作而導致的,而且它並不會影響到項目的運行。這裡我們暫時選擇無視就好。

注意:

有些紅色警告代表項目中的資源或代碼存在一定的問題,這裡無視不代表以後遇到類似的情況一概無視。

考慮到我們這款遊戲是第一人稱視角的,所以需要找到一個第一人稱視角的遊戲角色,然後把他/她放到遊戲場景之中。

那麼這個角色在哪裡呢?

在Project視圖中找到Standard Assets->Characters->FirstPersonCharacter->Prefabs這個目錄,裡面有兩個藍色圖標的文件,分別是FPSController和RigidBodyFPSController,這就是我們想要的。

那麼這兩種角色有什麼區別呢?在後面講到物理引擎的時候你就會明白,這裡我們選擇第一個FPSController。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

順便提一下,在之前的課程內容中我們曾經提到過Unity中一個非常重要的概念Prefab,也就是預設體。

這裡再重溫一下什麼是預設體。

Prefabs是一個遊戲對象及其組件的集合,目的是使得遊戲對象可以被重複使用。

這麼描述或許有點抽象,一個形象的比喻是,預設體就好比模板,我們可以使用預設體在場景中快速創建一個具有特定組件屬性值的遊戲對象。

這裡的FPSController就是一個第一人稱視角角色控制器的預設體。

感興趣的童鞋可以左鍵單擊FPSController,在Unity編輯器右上角的Inspector視圖中會出現一個Open Prefab按鈕,點擊後就可以看到這個預設體對象的詳細屬性設置了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在FPSController這個預設體中有很多組件,不同的組件給它提供了不同的功能和特性。考慮到大家還是小白,這裡我們就先不展開講FPSController預設體所有組件的詳細作用了。

好了,我們已經有了一個代表玩家角色的預設體。

那麼接下來問題來了,我們如何在遊戲場景中使用預設體呢?

有兩種方式,一種是所見即所得,只需要將預設體從Project視圖中拖動到場景中就好了。

另一種方式是通過代碼來手動生成預設體的實例對象。考慮到我們還沒學過C#,第二種方式有點難為大家了。那我們挑個簡單點的方式,用第一種方式好了。

左鍵單擊FPSController不放,拖動到Scene視圖或是Hierarchy視圖中,然後鬆開鼠標。

可以看到,在場景中的某個地方(取決於你鬆開鼠標的那一刻)會看到一個綠色線框一樣的東西,上面還有一個喇叭圖標和一個攝像機圖標。這個就是我們的主角了~

是不是有點失望?其實這是因為我們選擇的是第一人稱視角,所以它的主要作用之一就是提供了一個攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

接下來我們先來了解Unity編輯器中的另外一個重要視圖-Game視圖。

它的作用是顯示玩家在遊戲中所看到的內容,畫面經過場景中的相機進行渲染後呈現在視圖上。和場景Scene視圖不同的是,展示在遊戲Game視圖區的畫面將是玩家實際看到的畫面。

點擊Scene視圖標籤右邊的Game標籤,就會看到玩家視角會看到的畫面了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

之前沒有讓大家切換到Game視圖,是因為在outpost on desert這個場景中,默認情況下並沒有提供攝像機,所以如果有好奇心比較重的寶寶切換過去,可能會看到類似下面的畫面。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在Game視圖中還可以通過頂部的Display選擇和Free Aspect選項來切換顯示的畫幅,通過Scale來縮放遊戲畫面,並設置是否在預覽遊戲時最大化畫面顯示(Maximize On Play)、是否關閉音效(Mute Audio)、是否顯示某些特定的組件(Gizmos)等選項。對於開發者來說,這裡有個非常重要的Stats選項,打開它之後可以看到遊戲當前的性能表現,這個選項是非常有用的。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

好了,我們對Game視圖已經有了足夠的認識,在後續的學習中會通過不斷的重複練習來更加熟悉。

在Hierarchy視圖中點擊FPSController的三角將其展開,然後點擊FirstPersonCharacter,可以看到在Inspector視圖中有一個Camera組件,也就是攝像機。

關於攝像機的知識,這裡讓我們再次重溫下。

Unity的遊戲場景是通過將物體在三維的空間中放置和移動而創作出來的。但是在非VR的傳統設備上(如電腦和手機等),屏幕是二維的。因此,需要採用一種方式捕捉計算機畫面並將三維的畫面“展平”以顯示在2D的屏幕上。而這一切正是通過攝像機(Camera)來實現的。

Unity中提供了兩種攝像機:分別是Perspective(透視)和Orthographic(正交)攝像機。

其中透視攝像機模擬的是真實世界中人眼觀察世界的方式,用於創建仿真的虛擬世界。默認情況下Unity會使用透視攝像機。不過在某些情況下可能我們需要創建一些非仿真的對象,比如場景地圖或遊戲信息等,此時就會採用正交攝像機。

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你是處女座或者強迫症患者,可能已經因為下面的紅色警告符號心神不寧了~

Don’t panic,這裡的紅色警告絕對不是因為你的操作而導致的,而且它並不會影響到項目的運行。這裡我們暫時選擇無視就好。

注意:

有些紅色警告代表項目中的資源或代碼存在一定的問題,這裡無視不代表以後遇到類似的情況一概無視。

考慮到我們這款遊戲是第一人稱視角的,所以需要找到一個第一人稱視角的遊戲角色,然後把他/她放到遊戲場景之中。

那麼這個角色在哪裡呢?

在Project視圖中找到Standard Assets->Characters->FirstPersonCharacter->Prefabs這個目錄,裡面有兩個藍色圖標的文件,分別是FPSController和RigidBodyFPSController,這就是我們想要的。

那麼這兩種角色有什麼區別呢?在後面講到物理引擎的時候你就會明白,這裡我們選擇第一個FPSController。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

順便提一下,在之前的課程內容中我們曾經提到過Unity中一個非常重要的概念Prefab,也就是預設體。

這裡再重溫一下什麼是預設體。

Prefabs是一個遊戲對象及其組件的集合,目的是使得遊戲對象可以被重複使用。

這麼描述或許有點抽象,一個形象的比喻是,預設體就好比模板,我們可以使用預設體在場景中快速創建一個具有特定組件屬性值的遊戲對象。

這裡的FPSController就是一個第一人稱視角角色控制器的預設體。

感興趣的童鞋可以左鍵單擊FPSController,在Unity編輯器右上角的Inspector視圖中會出現一個Open Prefab按鈕,點擊後就可以看到這個預設體對象的詳細屬性設置了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在FPSController這個預設體中有很多組件,不同的組件給它提供了不同的功能和特性。考慮到大家還是小白,這裡我們就先不展開講FPSController預設體所有組件的詳細作用了。

好了,我們已經有了一個代表玩家角色的預設體。

那麼接下來問題來了,我們如何在遊戲場景中使用預設體呢?

有兩種方式,一種是所見即所得,只需要將預設體從Project視圖中拖動到場景中就好了。

另一種方式是通過代碼來手動生成預設體的實例對象。考慮到我們還沒學過C#,第二種方式有點難為大家了。那我們挑個簡單點的方式,用第一種方式好了。

左鍵單擊FPSController不放,拖動到Scene視圖或是Hierarchy視圖中,然後鬆開鼠標。

可以看到,在場景中的某個地方(取決於你鬆開鼠標的那一刻)會看到一個綠色線框一樣的東西,上面還有一個喇叭圖標和一個攝像機圖標。這個就是我們的主角了~

是不是有點失望?其實這是因為我們選擇的是第一人稱視角,所以它的主要作用之一就是提供了一個攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

接下來我們先來了解Unity編輯器中的另外一個重要視圖-Game視圖。

它的作用是顯示玩家在遊戲中所看到的內容,畫面經過場景中的相機進行渲染後呈現在視圖上。和場景Scene視圖不同的是,展示在遊戲Game視圖區的畫面將是玩家實際看到的畫面。

點擊Scene視圖標籤右邊的Game標籤,就會看到玩家視角會看到的畫面了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

之前沒有讓大家切換到Game視圖,是因為在outpost on desert這個場景中,默認情況下並沒有提供攝像機,所以如果有好奇心比較重的寶寶切換過去,可能會看到類似下面的畫面。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在Game視圖中還可以通過頂部的Display選擇和Free Aspect選項來切換顯示的畫幅,通過Scale來縮放遊戲畫面,並設置是否在預覽遊戲時最大化畫面顯示(Maximize On Play)、是否關閉音效(Mute Audio)、是否顯示某些特定的組件(Gizmos)等選項。對於開發者來說,這裡有個非常重要的Stats選項,打開它之後可以看到遊戲當前的性能表現,這個選項是非常有用的。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

好了,我們對Game視圖已經有了足夠的認識,在後續的學習中會通過不斷的重複練習來更加熟悉。

在Hierarchy視圖中點擊FPSController的三角將其展開,然後點擊FirstPersonCharacter,可以看到在Inspector視圖中有一個Camera組件,也就是攝像機。

關於攝像機的知識,這裡讓我們再次重溫下。

Unity的遊戲場景是通過將物體在三維的空間中放置和移動而創作出來的。但是在非VR的傳統設備上(如電腦和手機等),屏幕是二維的。因此,需要採用一種方式捕捉計算機畫面並將三維的畫面“展平”以顯示在2D的屏幕上。而這一切正是通過攝像機(Camera)來實現的。

Unity中提供了兩種攝像機:分別是Perspective(透視)和Orthographic(正交)攝像機。

其中透視攝像機模擬的是真實世界中人眼觀察世界的方式,用於創建仿真的虛擬世界。默認情況下Unity會使用透視攝像機。不過在某些情況下可能我們需要創建一些非仿真的對象,比如場景地圖或遊戲信息等,此時就會採用正交攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

對於這裡的攝像機來說,當然是普通的Perspective透視模式了。

點擊Scene標籤返回到場景視圖,我們可以通過右上角紅綠藍三色部分的多種視角來查看場景的外觀和內容。右鍵單擊xyz軸下面的 Persp,可以看到出現了多個選項,開發者可以在這裡切換視角。不過默認情況下我們還是採用Free+Perspective(透視)的視圖方式,這裡的Perspective代表透視。如果取消Perspective的勾選,那麼就是所謂的ISO(正交視圖),此時頂部標出的區域會顯示2D。

persp透視模式和ISO正交模式的區別是什麼呢?

在persp模式下,物體在Scene視圖中所呈現的畫面效果時候,距離攝像機近的物體顯得比較大,距離攝像機遠的物體顯得比較小,這也是人眼在現實世界中的觀察模式,同時也是繪畫中常用的透視技巧。而ISO正交模式(又稱作平行視圖)模式下,不論物體距離攝像機的距離有多遠,給人的感覺是一樣大的。

但是在Game視圖中,這兩個模式給人呈現的效果都是一樣的,也就是距離攝像機近就顯得大,距離攝像機遠就顯得小。

通常情況下我們默認採用persp頭飾和模式。

或許你已經注意到了,現在這個代表玩家角色的遊戲對象的位置並不是那麼的令人滿意,那麼應該怎麼辦呢?

這個時候,該是Unity的工具欄閃亮登場的時候了。

Unity的工具欄位於菜單欄之下,由五大部分組成,它為我們提供了幾個常用功能的便捷訪問方式,不過筆者還是推薦大家多利用快捷鍵來選擇合適的工具使用。

1. 變換工具

變換工具(Transform Tools)主要針對Scene視圖,主要用於實現對於遊戲對象的方位控制,包括位置、旋轉、縮放等,如圖所示:

變換工具是一組工具的集合,具體從左到右依次簡單介紹下。

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你是處女座或者強迫症患者,可能已經因為下面的紅色警告符號心神不寧了~

Don’t panic,這裡的紅色警告絕對不是因為你的操作而導致的,而且它並不會影響到項目的運行。這裡我們暫時選擇無視就好。

注意:

有些紅色警告代表項目中的資源或代碼存在一定的問題,這裡無視不代表以後遇到類似的情況一概無視。

考慮到我們這款遊戲是第一人稱視角的,所以需要找到一個第一人稱視角的遊戲角色,然後把他/她放到遊戲場景之中。

那麼這個角色在哪裡呢?

在Project視圖中找到Standard Assets->Characters->FirstPersonCharacter->Prefabs這個目錄,裡面有兩個藍色圖標的文件,分別是FPSController和RigidBodyFPSController,這就是我們想要的。

那麼這兩種角色有什麼區別呢?在後面講到物理引擎的時候你就會明白,這裡我們選擇第一個FPSController。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

順便提一下,在之前的課程內容中我們曾經提到過Unity中一個非常重要的概念Prefab,也就是預設體。

這裡再重溫一下什麼是預設體。

Prefabs是一個遊戲對象及其組件的集合,目的是使得遊戲對象可以被重複使用。

這麼描述或許有點抽象,一個形象的比喻是,預設體就好比模板,我們可以使用預設體在場景中快速創建一個具有特定組件屬性值的遊戲對象。

這裡的FPSController就是一個第一人稱視角角色控制器的預設體。

感興趣的童鞋可以左鍵單擊FPSController,在Unity編輯器右上角的Inspector視圖中會出現一個Open Prefab按鈕,點擊後就可以看到這個預設體對象的詳細屬性設置了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在FPSController這個預設體中有很多組件,不同的組件給它提供了不同的功能和特性。考慮到大家還是小白,這裡我們就先不展開講FPSController預設體所有組件的詳細作用了。

好了,我們已經有了一個代表玩家角色的預設體。

那麼接下來問題來了,我們如何在遊戲場景中使用預設體呢?

有兩種方式,一種是所見即所得,只需要將預設體從Project視圖中拖動到場景中就好了。

另一種方式是通過代碼來手動生成預設體的實例對象。考慮到我們還沒學過C#,第二種方式有點難為大家了。那我們挑個簡單點的方式,用第一種方式好了。

左鍵單擊FPSController不放,拖動到Scene視圖或是Hierarchy視圖中,然後鬆開鼠標。

可以看到,在場景中的某個地方(取決於你鬆開鼠標的那一刻)會看到一個綠色線框一樣的東西,上面還有一個喇叭圖標和一個攝像機圖標。這個就是我們的主角了~

是不是有點失望?其實這是因為我們選擇的是第一人稱視角,所以它的主要作用之一就是提供了一個攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

接下來我們先來了解Unity編輯器中的另外一個重要視圖-Game視圖。

它的作用是顯示玩家在遊戲中所看到的內容,畫面經過場景中的相機進行渲染後呈現在視圖上。和場景Scene視圖不同的是,展示在遊戲Game視圖區的畫面將是玩家實際看到的畫面。

點擊Scene視圖標籤右邊的Game標籤,就會看到玩家視角會看到的畫面了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

之前沒有讓大家切換到Game視圖,是因為在outpost on desert這個場景中,默認情況下並沒有提供攝像機,所以如果有好奇心比較重的寶寶切換過去,可能會看到類似下面的畫面。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在Game視圖中還可以通過頂部的Display選擇和Free Aspect選項來切換顯示的畫幅,通過Scale來縮放遊戲畫面,並設置是否在預覽遊戲時最大化畫面顯示(Maximize On Play)、是否關閉音效(Mute Audio)、是否顯示某些特定的組件(Gizmos)等選項。對於開發者來說,這裡有個非常重要的Stats選項,打開它之後可以看到遊戲當前的性能表現,這個選項是非常有用的。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

好了,我們對Game視圖已經有了足夠的認識,在後續的學習中會通過不斷的重複練習來更加熟悉。

在Hierarchy視圖中點擊FPSController的三角將其展開,然後點擊FirstPersonCharacter,可以看到在Inspector視圖中有一個Camera組件,也就是攝像機。

關於攝像機的知識,這裡讓我們再次重溫下。

Unity的遊戲場景是通過將物體在三維的空間中放置和移動而創作出來的。但是在非VR的傳統設備上(如電腦和手機等),屏幕是二維的。因此,需要採用一種方式捕捉計算機畫面並將三維的畫面“展平”以顯示在2D的屏幕上。而這一切正是通過攝像機(Camera)來實現的。

Unity中提供了兩種攝像機:分別是Perspective(透視)和Orthographic(正交)攝像機。

其中透視攝像機模擬的是真實世界中人眼觀察世界的方式,用於創建仿真的虛擬世界。默認情況下Unity會使用透視攝像機。不過在某些情況下可能我們需要創建一些非仿真的對象,比如場景地圖或遊戲信息等,此時就會採用正交攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

對於這裡的攝像機來說,當然是普通的Perspective透視模式了。

點擊Scene標籤返回到場景視圖,我們可以通過右上角紅綠藍三色部分的多種視角來查看場景的外觀和內容。右鍵單擊xyz軸下面的 Persp,可以看到出現了多個選項,開發者可以在這裡切換視角。不過默認情況下我們還是採用Free+Perspective(透視)的視圖方式,這裡的Perspective代表透視。如果取消Perspective的勾選,那麼就是所謂的ISO(正交視圖),此時頂部標出的區域會顯示2D。

persp透視模式和ISO正交模式的區別是什麼呢?

在persp模式下,物體在Scene視圖中所呈現的畫面效果時候,距離攝像機近的物體顯得比較大,距離攝像機遠的物體顯得比較小,這也是人眼在現實世界中的觀察模式,同時也是繪畫中常用的透視技巧。而ISO正交模式(又稱作平行視圖)模式下,不論物體距離攝像機的距離有多遠,給人的感覺是一樣大的。

但是在Game視圖中,這兩個模式給人呈現的效果都是一樣的,也就是距離攝像機近就顯得大,距離攝像機遠就顯得小。

通常情況下我們默認採用persp頭飾和模式。

或許你已經注意到了,現在這個代表玩家角色的遊戲對象的位置並不是那麼的令人滿意,那麼應該怎麼辦呢?

這個時候,該是Unity的工具欄閃亮登場的時候了。

Unity的工具欄位於菜單欄之下,由五大部分組成,它為我們提供了幾個常用功能的便捷訪問方式,不過筆者還是推薦大家多利用快捷鍵來選擇合適的工具使用。

1. 變換工具

變換工具(Transform Tools)主要針對Scene視圖,主要用於實現對於遊戲對象的方位控制,包括位置、旋轉、縮放等,如圖所示:

變換工具是一組工具的集合,具體從左到右依次簡單介紹下。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

(1)手型工具

手型工具可以在Scene視圖中進行視角的平移,快捷鍵為Q。選擇手型工具並按住Alt可以旋轉當前的場景視角。另外,按住Alt並且用鼠標右鍵左右拖動可以縮放和拉近場景,鼠標的滾輪可以實現相同的效果。當我們需要查看遊戲場景的全貌和細節時,熟練使用手型工具是基本的要求。

小練習:

使用手型工具練習查看遊戲場景的每一處細節。

(2)移動工具

移動工具用來更改場景中游戲對象的位置,快捷鍵為W。在層級視圖選擇任意遊戲對象,該物體上會出現一個三維座標軸,通過拖動座標軸的箭頭可以更改遊戲對象在對應軸向的位置。如果明確要將它放置到哪個位置的話,也可以修改物體Inspectro檢視視圖中Transform的對應數值,來達到相同的效果。

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你是處女座或者強迫症患者,可能已經因為下面的紅色警告符號心神不寧了~

Don’t panic,這裡的紅色警告絕對不是因為你的操作而導致的,而且它並不會影響到項目的運行。這裡我們暫時選擇無視就好。

注意:

有些紅色警告代表項目中的資源或代碼存在一定的問題,這裡無視不代表以後遇到類似的情況一概無視。

考慮到我們這款遊戲是第一人稱視角的,所以需要找到一個第一人稱視角的遊戲角色,然後把他/她放到遊戲場景之中。

那麼這個角色在哪裡呢?

在Project視圖中找到Standard Assets->Characters->FirstPersonCharacter->Prefabs這個目錄,裡面有兩個藍色圖標的文件,分別是FPSController和RigidBodyFPSController,這就是我們想要的。

那麼這兩種角色有什麼區別呢?在後面講到物理引擎的時候你就會明白,這裡我們選擇第一個FPSController。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

順便提一下,在之前的課程內容中我們曾經提到過Unity中一個非常重要的概念Prefab,也就是預設體。

這裡再重溫一下什麼是預設體。

Prefabs是一個遊戲對象及其組件的集合,目的是使得遊戲對象可以被重複使用。

這麼描述或許有點抽象,一個形象的比喻是,預設體就好比模板,我們可以使用預設體在場景中快速創建一個具有特定組件屬性值的遊戲對象。

這裡的FPSController就是一個第一人稱視角角色控制器的預設體。

感興趣的童鞋可以左鍵單擊FPSController,在Unity編輯器右上角的Inspector視圖中會出現一個Open Prefab按鈕,點擊後就可以看到這個預設體對象的詳細屬性設置了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在FPSController這個預設體中有很多組件,不同的組件給它提供了不同的功能和特性。考慮到大家還是小白,這裡我們就先不展開講FPSController預設體所有組件的詳細作用了。

好了,我們已經有了一個代表玩家角色的預設體。

那麼接下來問題來了,我們如何在遊戲場景中使用預設體呢?

有兩種方式,一種是所見即所得,只需要將預設體從Project視圖中拖動到場景中就好了。

另一種方式是通過代碼來手動生成預設體的實例對象。考慮到我們還沒學過C#,第二種方式有點難為大家了。那我們挑個簡單點的方式,用第一種方式好了。

左鍵單擊FPSController不放,拖動到Scene視圖或是Hierarchy視圖中,然後鬆開鼠標。

可以看到,在場景中的某個地方(取決於你鬆開鼠標的那一刻)會看到一個綠色線框一樣的東西,上面還有一個喇叭圖標和一個攝像機圖標。這個就是我們的主角了~

是不是有點失望?其實這是因為我們選擇的是第一人稱視角,所以它的主要作用之一就是提供了一個攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

接下來我們先來了解Unity編輯器中的另外一個重要視圖-Game視圖。

它的作用是顯示玩家在遊戲中所看到的內容,畫面經過場景中的相機進行渲染後呈現在視圖上。和場景Scene視圖不同的是,展示在遊戲Game視圖區的畫面將是玩家實際看到的畫面。

點擊Scene視圖標籤右邊的Game標籤,就會看到玩家視角會看到的畫面了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

之前沒有讓大家切換到Game視圖,是因為在outpost on desert這個場景中,默認情況下並沒有提供攝像機,所以如果有好奇心比較重的寶寶切換過去,可能會看到類似下面的畫面。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在Game視圖中還可以通過頂部的Display選擇和Free Aspect選項來切換顯示的畫幅,通過Scale來縮放遊戲畫面,並設置是否在預覽遊戲時最大化畫面顯示(Maximize On Play)、是否關閉音效(Mute Audio)、是否顯示某些特定的組件(Gizmos)等選項。對於開發者來說,這裡有個非常重要的Stats選項,打開它之後可以看到遊戲當前的性能表現,這個選項是非常有用的。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

好了,我們對Game視圖已經有了足夠的認識,在後續的學習中會通過不斷的重複練習來更加熟悉。

在Hierarchy視圖中點擊FPSController的三角將其展開,然後點擊FirstPersonCharacter,可以看到在Inspector視圖中有一個Camera組件,也就是攝像機。

關於攝像機的知識,這裡讓我們再次重溫下。

Unity的遊戲場景是通過將物體在三維的空間中放置和移動而創作出來的。但是在非VR的傳統設備上(如電腦和手機等),屏幕是二維的。因此,需要採用一種方式捕捉計算機畫面並將三維的畫面“展平”以顯示在2D的屏幕上。而這一切正是通過攝像機(Camera)來實現的。

Unity中提供了兩種攝像機:分別是Perspective(透視)和Orthographic(正交)攝像機。

其中透視攝像機模擬的是真實世界中人眼觀察世界的方式,用於創建仿真的虛擬世界。默認情況下Unity會使用透視攝像機。不過在某些情況下可能我們需要創建一些非仿真的對象,比如場景地圖或遊戲信息等,此時就會採用正交攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

對於這裡的攝像機來說,當然是普通的Perspective透視模式了。

點擊Scene標籤返回到場景視圖,我們可以通過右上角紅綠藍三色部分的多種視角來查看場景的外觀和內容。右鍵單擊xyz軸下面的 Persp,可以看到出現了多個選項,開發者可以在這裡切換視角。不過默認情況下我們還是採用Free+Perspective(透視)的視圖方式,這裡的Perspective代表透視。如果取消Perspective的勾選,那麼就是所謂的ISO(正交視圖),此時頂部標出的區域會顯示2D。

persp透視模式和ISO正交模式的區別是什麼呢?

在persp模式下,物體在Scene視圖中所呈現的畫面效果時候,距離攝像機近的物體顯得比較大,距離攝像機遠的物體顯得比較小,這也是人眼在現實世界中的觀察模式,同時也是繪畫中常用的透視技巧。而ISO正交模式(又稱作平行視圖)模式下,不論物體距離攝像機的距離有多遠,給人的感覺是一樣大的。

但是在Game視圖中,這兩個模式給人呈現的效果都是一樣的,也就是距離攝像機近就顯得大,距離攝像機遠就顯得小。

通常情況下我們默認採用persp頭飾和模式。

或許你已經注意到了,現在這個代表玩家角色的遊戲對象的位置並不是那麼的令人滿意,那麼應該怎麼辦呢?

這個時候,該是Unity的工具欄閃亮登場的時候了。

Unity的工具欄位於菜單欄之下,由五大部分組成,它為我們提供了幾個常用功能的便捷訪問方式,不過筆者還是推薦大家多利用快捷鍵來選擇合適的工具使用。

1. 變換工具

變換工具(Transform Tools)主要針對Scene視圖,主要用於實現對於遊戲對象的方位控制,包括位置、旋轉、縮放等,如圖所示:

變換工具是一組工具的集合,具體從左到右依次簡單介紹下。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

(1)手型工具

手型工具可以在Scene視圖中進行視角的平移,快捷鍵為Q。選擇手型工具並按住Alt可以旋轉當前的場景視角。另外,按住Alt並且用鼠標右鍵左右拖動可以縮放和拉近場景,鼠標的滾輪可以實現相同的效果。當我們需要查看遊戲場景的全貌和細節時,熟練使用手型工具是基本的要求。

小練習:

使用手型工具練習查看遊戲場景的每一處細節。

(2)移動工具

移動工具用來更改場景中游戲對象的位置,快捷鍵為W。在層級視圖選擇任意遊戲對象,該物體上會出現一個三維座標軸,通過拖動座標軸的箭頭可以更改遊戲對象在對應軸向的位置。如果明確要將它放置到哪個位置的話,也可以修改物體Inspectro檢視視圖中Transform的對應數值,來達到相同的效果。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用移動工具選中場景中的某個物體,並將其移動到其它位置。

3)旋轉工具

旋轉工具可以修改遊戲對象在三個座標軸上的旋轉角度,快捷鍵為E。如果清楚需要旋轉的角度值,可以直接在物體檢視視圖中的Transform組件對Rotation進行修改,來達到相同的效果。

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你是處女座或者強迫症患者,可能已經因為下面的紅色警告符號心神不寧了~

Don’t panic,這裡的紅色警告絕對不是因為你的操作而導致的,而且它並不會影響到項目的運行。這裡我們暫時選擇無視就好。

注意:

有些紅色警告代表項目中的資源或代碼存在一定的問題,這裡無視不代表以後遇到類似的情況一概無視。

考慮到我們這款遊戲是第一人稱視角的,所以需要找到一個第一人稱視角的遊戲角色,然後把他/她放到遊戲場景之中。

那麼這個角色在哪裡呢?

在Project視圖中找到Standard Assets->Characters->FirstPersonCharacter->Prefabs這個目錄,裡面有兩個藍色圖標的文件,分別是FPSController和RigidBodyFPSController,這就是我們想要的。

那麼這兩種角色有什麼區別呢?在後面講到物理引擎的時候你就會明白,這裡我們選擇第一個FPSController。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

順便提一下,在之前的課程內容中我們曾經提到過Unity中一個非常重要的概念Prefab,也就是預設體。

這裡再重溫一下什麼是預設體。

Prefabs是一個遊戲對象及其組件的集合,目的是使得遊戲對象可以被重複使用。

這麼描述或許有點抽象,一個形象的比喻是,預設體就好比模板,我們可以使用預設體在場景中快速創建一個具有特定組件屬性值的遊戲對象。

這裡的FPSController就是一個第一人稱視角角色控制器的預設體。

感興趣的童鞋可以左鍵單擊FPSController,在Unity編輯器右上角的Inspector視圖中會出現一個Open Prefab按鈕,點擊後就可以看到這個預設體對象的詳細屬性設置了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在FPSController這個預設體中有很多組件,不同的組件給它提供了不同的功能和特性。考慮到大家還是小白,這裡我們就先不展開講FPSController預設體所有組件的詳細作用了。

好了,我們已經有了一個代表玩家角色的預設體。

那麼接下來問題來了,我們如何在遊戲場景中使用預設體呢?

有兩種方式,一種是所見即所得,只需要將預設體從Project視圖中拖動到場景中就好了。

另一種方式是通過代碼來手動生成預設體的實例對象。考慮到我們還沒學過C#,第二種方式有點難為大家了。那我們挑個簡單點的方式,用第一種方式好了。

左鍵單擊FPSController不放,拖動到Scene視圖或是Hierarchy視圖中,然後鬆開鼠標。

可以看到,在場景中的某個地方(取決於你鬆開鼠標的那一刻)會看到一個綠色線框一樣的東西,上面還有一個喇叭圖標和一個攝像機圖標。這個就是我們的主角了~

是不是有點失望?其實這是因為我們選擇的是第一人稱視角,所以它的主要作用之一就是提供了一個攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

接下來我們先來了解Unity編輯器中的另外一個重要視圖-Game視圖。

它的作用是顯示玩家在遊戲中所看到的內容,畫面經過場景中的相機進行渲染後呈現在視圖上。和場景Scene視圖不同的是,展示在遊戲Game視圖區的畫面將是玩家實際看到的畫面。

點擊Scene視圖標籤右邊的Game標籤,就會看到玩家視角會看到的畫面了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

之前沒有讓大家切換到Game視圖,是因為在outpost on desert這個場景中,默認情況下並沒有提供攝像機,所以如果有好奇心比較重的寶寶切換過去,可能會看到類似下面的畫面。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在Game視圖中還可以通過頂部的Display選擇和Free Aspect選項來切換顯示的畫幅,通過Scale來縮放遊戲畫面,並設置是否在預覽遊戲時最大化畫面顯示(Maximize On Play)、是否關閉音效(Mute Audio)、是否顯示某些特定的組件(Gizmos)等選項。對於開發者來說,這裡有個非常重要的Stats選項,打開它之後可以看到遊戲當前的性能表現,這個選項是非常有用的。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

好了,我們對Game視圖已經有了足夠的認識,在後續的學習中會通過不斷的重複練習來更加熟悉。

在Hierarchy視圖中點擊FPSController的三角將其展開,然後點擊FirstPersonCharacter,可以看到在Inspector視圖中有一個Camera組件,也就是攝像機。

關於攝像機的知識,這裡讓我們再次重溫下。

Unity的遊戲場景是通過將物體在三維的空間中放置和移動而創作出來的。但是在非VR的傳統設備上(如電腦和手機等),屏幕是二維的。因此,需要採用一種方式捕捉計算機畫面並將三維的畫面“展平”以顯示在2D的屏幕上。而這一切正是通過攝像機(Camera)來實現的。

Unity中提供了兩種攝像機:分別是Perspective(透視)和Orthographic(正交)攝像機。

其中透視攝像機模擬的是真實世界中人眼觀察世界的方式,用於創建仿真的虛擬世界。默認情況下Unity會使用透視攝像機。不過在某些情況下可能我們需要創建一些非仿真的對象,比如場景地圖或遊戲信息等,此時就會採用正交攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

對於這裡的攝像機來說,當然是普通的Perspective透視模式了。

點擊Scene標籤返回到場景視圖,我們可以通過右上角紅綠藍三色部分的多種視角來查看場景的外觀和內容。右鍵單擊xyz軸下面的 Persp,可以看到出現了多個選項,開發者可以在這裡切換視角。不過默認情況下我們還是採用Free+Perspective(透視)的視圖方式,這裡的Perspective代表透視。如果取消Perspective的勾選,那麼就是所謂的ISO(正交視圖),此時頂部標出的區域會顯示2D。

persp透視模式和ISO正交模式的區別是什麼呢?

在persp模式下,物體在Scene視圖中所呈現的畫面效果時候,距離攝像機近的物體顯得比較大,距離攝像機遠的物體顯得比較小,這也是人眼在現實世界中的觀察模式,同時也是繪畫中常用的透視技巧。而ISO正交模式(又稱作平行視圖)模式下,不論物體距離攝像機的距離有多遠,給人的感覺是一樣大的。

但是在Game視圖中,這兩個模式給人呈現的效果都是一樣的,也就是距離攝像機近就顯得大,距離攝像機遠就顯得小。

通常情況下我們默認採用persp頭飾和模式。

或許你已經注意到了,現在這個代表玩家角色的遊戲對象的位置並不是那麼的令人滿意,那麼應該怎麼辦呢?

這個時候,該是Unity的工具欄閃亮登場的時候了。

Unity的工具欄位於菜單欄之下,由五大部分組成,它為我們提供了幾個常用功能的便捷訪問方式,不過筆者還是推薦大家多利用快捷鍵來選擇合適的工具使用。

1. 變換工具

變換工具(Transform Tools)主要針對Scene視圖,主要用於實現對於遊戲對象的方位控制,包括位置、旋轉、縮放等,如圖所示:

變換工具是一組工具的集合,具體從左到右依次簡單介紹下。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

(1)手型工具

手型工具可以在Scene視圖中進行視角的平移,快捷鍵為Q。選擇手型工具並按住Alt可以旋轉當前的場景視角。另外,按住Alt並且用鼠標右鍵左右拖動可以縮放和拉近場景,鼠標的滾輪可以實現相同的效果。當我們需要查看遊戲場景的全貌和細節時,熟練使用手型工具是基本的要求。

小練習:

使用手型工具練習查看遊戲場景的每一處細節。

(2)移動工具

移動工具用來更改場景中游戲對象的位置,快捷鍵為W。在層級視圖選擇任意遊戲對象,該物體上會出現一個三維座標軸,通過拖動座標軸的箭頭可以更改遊戲對象在對應軸向的位置。如果明確要將它放置到哪個位置的話,也可以修改物體Inspectro檢視視圖中Transform的對應數值,來達到相同的效果。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用移動工具選中場景中的某個物體,並將其移動到其它位置。

3)旋轉工具

旋轉工具可以修改遊戲對象在三個座標軸上的旋轉角度,快捷鍵為E。如果清楚需要旋轉的角度值,可以直接在物體檢視視圖中的Transform組件對Rotation進行修改,來達到相同的效果。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用旋轉工具旋轉場景中的某個物體。

(4)縮放工具

縮放工具用於修改遊戲對象的大小,快捷鍵為R。選中游戲對象並且使用縮放工具的時候,座標軸的箭頭變成紅色、綠色、藍色三個小方塊,以及代表物體中心點的灰色小方塊,拖動紅色、綠色、藍色三個小方塊可以對遊戲對象沿著某一軸向進行縮放調整。按住座標軸原點的灰色方塊進行拖動的話,可以調整整個遊戲對象的大小。

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你是處女座或者強迫症患者,可能已經因為下面的紅色警告符號心神不寧了~

Don’t panic,這裡的紅色警告絕對不是因為你的操作而導致的,而且它並不會影響到項目的運行。這裡我們暫時選擇無視就好。

注意:

有些紅色警告代表項目中的資源或代碼存在一定的問題,這裡無視不代表以後遇到類似的情況一概無視。

考慮到我們這款遊戲是第一人稱視角的,所以需要找到一個第一人稱視角的遊戲角色,然後把他/她放到遊戲場景之中。

那麼這個角色在哪裡呢?

在Project視圖中找到Standard Assets->Characters->FirstPersonCharacter->Prefabs這個目錄,裡面有兩個藍色圖標的文件,分別是FPSController和RigidBodyFPSController,這就是我們想要的。

那麼這兩種角色有什麼區別呢?在後面講到物理引擎的時候你就會明白,這裡我們選擇第一個FPSController。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

順便提一下,在之前的課程內容中我們曾經提到過Unity中一個非常重要的概念Prefab,也就是預設體。

這裡再重溫一下什麼是預設體。

Prefabs是一個遊戲對象及其組件的集合,目的是使得遊戲對象可以被重複使用。

這麼描述或許有點抽象,一個形象的比喻是,預設體就好比模板,我們可以使用預設體在場景中快速創建一個具有特定組件屬性值的遊戲對象。

這裡的FPSController就是一個第一人稱視角角色控制器的預設體。

感興趣的童鞋可以左鍵單擊FPSController,在Unity編輯器右上角的Inspector視圖中會出現一個Open Prefab按鈕,點擊後就可以看到這個預設體對象的詳細屬性設置了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在FPSController這個預設體中有很多組件,不同的組件給它提供了不同的功能和特性。考慮到大家還是小白,這裡我們就先不展開講FPSController預設體所有組件的詳細作用了。

好了,我們已經有了一個代表玩家角色的預設體。

那麼接下來問題來了,我們如何在遊戲場景中使用預設體呢?

有兩種方式,一種是所見即所得,只需要將預設體從Project視圖中拖動到場景中就好了。

另一種方式是通過代碼來手動生成預設體的實例對象。考慮到我們還沒學過C#,第二種方式有點難為大家了。那我們挑個簡單點的方式,用第一種方式好了。

左鍵單擊FPSController不放,拖動到Scene視圖或是Hierarchy視圖中,然後鬆開鼠標。

可以看到,在場景中的某個地方(取決於你鬆開鼠標的那一刻)會看到一個綠色線框一樣的東西,上面還有一個喇叭圖標和一個攝像機圖標。這個就是我們的主角了~

是不是有點失望?其實這是因為我們選擇的是第一人稱視角,所以它的主要作用之一就是提供了一個攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

接下來我們先來了解Unity編輯器中的另外一個重要視圖-Game視圖。

它的作用是顯示玩家在遊戲中所看到的內容,畫面經過場景中的相機進行渲染後呈現在視圖上。和場景Scene視圖不同的是,展示在遊戲Game視圖區的畫面將是玩家實際看到的畫面。

點擊Scene視圖標籤右邊的Game標籤,就會看到玩家視角會看到的畫面了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

之前沒有讓大家切換到Game視圖,是因為在outpost on desert這個場景中,默認情況下並沒有提供攝像機,所以如果有好奇心比較重的寶寶切換過去,可能會看到類似下面的畫面。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在Game視圖中還可以通過頂部的Display選擇和Free Aspect選項來切換顯示的畫幅,通過Scale來縮放遊戲畫面,並設置是否在預覽遊戲時最大化畫面顯示(Maximize On Play)、是否關閉音效(Mute Audio)、是否顯示某些特定的組件(Gizmos)等選項。對於開發者來說,這裡有個非常重要的Stats選項,打開它之後可以看到遊戲當前的性能表現,這個選項是非常有用的。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

好了,我們對Game視圖已經有了足夠的認識,在後續的學習中會通過不斷的重複練習來更加熟悉。

在Hierarchy視圖中點擊FPSController的三角將其展開,然後點擊FirstPersonCharacter,可以看到在Inspector視圖中有一個Camera組件,也就是攝像機。

關於攝像機的知識,這裡讓我們再次重溫下。

Unity的遊戲場景是通過將物體在三維的空間中放置和移動而創作出來的。但是在非VR的傳統設備上(如電腦和手機等),屏幕是二維的。因此,需要採用一種方式捕捉計算機畫面並將三維的畫面“展平”以顯示在2D的屏幕上。而這一切正是通過攝像機(Camera)來實現的。

Unity中提供了兩種攝像機:分別是Perspective(透視)和Orthographic(正交)攝像機。

其中透視攝像機模擬的是真實世界中人眼觀察世界的方式,用於創建仿真的虛擬世界。默認情況下Unity會使用透視攝像機。不過在某些情況下可能我們需要創建一些非仿真的對象,比如場景地圖或遊戲信息等,此時就會採用正交攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

對於這裡的攝像機來說,當然是普通的Perspective透視模式了。

點擊Scene標籤返回到場景視圖,我們可以通過右上角紅綠藍三色部分的多種視角來查看場景的外觀和內容。右鍵單擊xyz軸下面的 Persp,可以看到出現了多個選項,開發者可以在這裡切換視角。不過默認情況下我們還是採用Free+Perspective(透視)的視圖方式,這裡的Perspective代表透視。如果取消Perspective的勾選,那麼就是所謂的ISO(正交視圖),此時頂部標出的區域會顯示2D。

persp透視模式和ISO正交模式的區別是什麼呢?

在persp模式下,物體在Scene視圖中所呈現的畫面效果時候,距離攝像機近的物體顯得比較大,距離攝像機遠的物體顯得比較小,這也是人眼在現實世界中的觀察模式,同時也是繪畫中常用的透視技巧。而ISO正交模式(又稱作平行視圖)模式下,不論物體距離攝像機的距離有多遠,給人的感覺是一樣大的。

但是在Game視圖中,這兩個模式給人呈現的效果都是一樣的,也就是距離攝像機近就顯得大,距離攝像機遠就顯得小。

通常情況下我們默認採用persp頭飾和模式。

或許你已經注意到了,現在這個代表玩家角色的遊戲對象的位置並不是那麼的令人滿意,那麼應該怎麼辦呢?

這個時候,該是Unity的工具欄閃亮登場的時候了。

Unity的工具欄位於菜單欄之下,由五大部分組成,它為我們提供了幾個常用功能的便捷訪問方式,不過筆者還是推薦大家多利用快捷鍵來選擇合適的工具使用。

1. 變換工具

變換工具(Transform Tools)主要針對Scene視圖,主要用於實現對於遊戲對象的方位控制,包括位置、旋轉、縮放等,如圖所示:

變換工具是一組工具的集合,具體從左到右依次簡單介紹下。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

(1)手型工具

手型工具可以在Scene視圖中進行視角的平移,快捷鍵為Q。選擇手型工具並按住Alt可以旋轉當前的場景視角。另外,按住Alt並且用鼠標右鍵左右拖動可以縮放和拉近場景,鼠標的滾輪可以實現相同的效果。當我們需要查看遊戲場景的全貌和細節時,熟練使用手型工具是基本的要求。

小練習:

使用手型工具練習查看遊戲場景的每一處細節。

(2)移動工具

移動工具用來更改場景中游戲對象的位置,快捷鍵為W。在層級視圖選擇任意遊戲對象,該物體上會出現一個三維座標軸,通過拖動座標軸的箭頭可以更改遊戲對象在對應軸向的位置。如果明確要將它放置到哪個位置的話,也可以修改物體Inspectro檢視視圖中Transform的對應數值,來達到相同的效果。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用移動工具選中場景中的某個物體,並將其移動到其它位置。

3)旋轉工具

旋轉工具可以修改遊戲對象在三個座標軸上的旋轉角度,快捷鍵為E。如果清楚需要旋轉的角度值,可以直接在物體檢視視圖中的Transform組件對Rotation進行修改,來達到相同的效果。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用旋轉工具旋轉場景中的某個物體。

(4)縮放工具

縮放工具用於修改遊戲對象的大小,快捷鍵為R。選中游戲對象並且使用縮放工具的時候,座標軸的箭頭變成紅色、綠色、藍色三個小方塊,以及代表物體中心點的灰色小方塊,拖動紅色、綠色、藍色三個小方塊可以對遊戲對象沿著某一軸向進行縮放調整。按住座標軸原點的灰色方塊進行拖動的話,可以調整整個遊戲對象的大小。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用縮放工具放大或縮小基地內外的場景物體。

(5)矩形工具

矩形工具用來方便用戶查看和編輯2D或3D遊戲對象的矩形手柄(Rect Handles),快捷鍵為T。矩形工具在2D遊戲中的主要作用是調整UI的設置,在3D遊戲中也可以靈活的可視化的調整3D物體的位置和大小。

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你是處女座或者強迫症患者,可能已經因為下面的紅色警告符號心神不寧了~

Don’t panic,這裡的紅色警告絕對不是因為你的操作而導致的,而且它並不會影響到項目的運行。這裡我們暫時選擇無視就好。

注意:

有些紅色警告代表項目中的資源或代碼存在一定的問題,這裡無視不代表以後遇到類似的情況一概無視。

考慮到我們這款遊戲是第一人稱視角的,所以需要找到一個第一人稱視角的遊戲角色,然後把他/她放到遊戲場景之中。

那麼這個角色在哪裡呢?

在Project視圖中找到Standard Assets->Characters->FirstPersonCharacter->Prefabs這個目錄,裡面有兩個藍色圖標的文件,分別是FPSController和RigidBodyFPSController,這就是我們想要的。

那麼這兩種角色有什麼區別呢?在後面講到物理引擎的時候你就會明白,這裡我們選擇第一個FPSController。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

順便提一下,在之前的課程內容中我們曾經提到過Unity中一個非常重要的概念Prefab,也就是預設體。

這裡再重溫一下什麼是預設體。

Prefabs是一個遊戲對象及其組件的集合,目的是使得遊戲對象可以被重複使用。

這麼描述或許有點抽象,一個形象的比喻是,預設體就好比模板,我們可以使用預設體在場景中快速創建一個具有特定組件屬性值的遊戲對象。

這裡的FPSController就是一個第一人稱視角角色控制器的預設體。

感興趣的童鞋可以左鍵單擊FPSController,在Unity編輯器右上角的Inspector視圖中會出現一個Open Prefab按鈕,點擊後就可以看到這個預設體對象的詳細屬性設置了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在FPSController這個預設體中有很多組件,不同的組件給它提供了不同的功能和特性。考慮到大家還是小白,這裡我們就先不展開講FPSController預設體所有組件的詳細作用了。

好了,我們已經有了一個代表玩家角色的預設體。

那麼接下來問題來了,我們如何在遊戲場景中使用預設體呢?

有兩種方式,一種是所見即所得,只需要將預設體從Project視圖中拖動到場景中就好了。

另一種方式是通過代碼來手動生成預設體的實例對象。考慮到我們還沒學過C#,第二種方式有點難為大家了。那我們挑個簡單點的方式,用第一種方式好了。

左鍵單擊FPSController不放,拖動到Scene視圖或是Hierarchy視圖中,然後鬆開鼠標。

可以看到,在場景中的某個地方(取決於你鬆開鼠標的那一刻)會看到一個綠色線框一樣的東西,上面還有一個喇叭圖標和一個攝像機圖標。這個就是我們的主角了~

是不是有點失望?其實這是因為我們選擇的是第一人稱視角,所以它的主要作用之一就是提供了一個攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

接下來我們先來了解Unity編輯器中的另外一個重要視圖-Game視圖。

它的作用是顯示玩家在遊戲中所看到的內容,畫面經過場景中的相機進行渲染後呈現在視圖上。和場景Scene視圖不同的是,展示在遊戲Game視圖區的畫面將是玩家實際看到的畫面。

點擊Scene視圖標籤右邊的Game標籤,就會看到玩家視角會看到的畫面了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

之前沒有讓大家切換到Game視圖,是因為在outpost on desert這個場景中,默認情況下並沒有提供攝像機,所以如果有好奇心比較重的寶寶切換過去,可能會看到類似下面的畫面。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在Game視圖中還可以通過頂部的Display選擇和Free Aspect選項來切換顯示的畫幅,通過Scale來縮放遊戲畫面,並設置是否在預覽遊戲時最大化畫面顯示(Maximize On Play)、是否關閉音效(Mute Audio)、是否顯示某些特定的組件(Gizmos)等選項。對於開發者來說,這裡有個非常重要的Stats選項,打開它之後可以看到遊戲當前的性能表現,這個選項是非常有用的。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

好了,我們對Game視圖已經有了足夠的認識,在後續的學習中會通過不斷的重複練習來更加熟悉。

在Hierarchy視圖中點擊FPSController的三角將其展開,然後點擊FirstPersonCharacter,可以看到在Inspector視圖中有一個Camera組件,也就是攝像機。

關於攝像機的知識,這裡讓我們再次重溫下。

Unity的遊戲場景是通過將物體在三維的空間中放置和移動而創作出來的。但是在非VR的傳統設備上(如電腦和手機等),屏幕是二維的。因此,需要採用一種方式捕捉計算機畫面並將三維的畫面“展平”以顯示在2D的屏幕上。而這一切正是通過攝像機(Camera)來實現的。

Unity中提供了兩種攝像機:分別是Perspective(透視)和Orthographic(正交)攝像機。

其中透視攝像機模擬的是真實世界中人眼觀察世界的方式,用於創建仿真的虛擬世界。默認情況下Unity會使用透視攝像機。不過在某些情況下可能我們需要創建一些非仿真的對象,比如場景地圖或遊戲信息等,此時就會採用正交攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

對於這裡的攝像機來說,當然是普通的Perspective透視模式了。

點擊Scene標籤返回到場景視圖,我們可以通過右上角紅綠藍三色部分的多種視角來查看場景的外觀和內容。右鍵單擊xyz軸下面的 Persp,可以看到出現了多個選項,開發者可以在這裡切換視角。不過默認情況下我們還是採用Free+Perspective(透視)的視圖方式,這裡的Perspective代表透視。如果取消Perspective的勾選,那麼就是所謂的ISO(正交視圖),此時頂部標出的區域會顯示2D。

persp透視模式和ISO正交模式的區別是什麼呢?

在persp模式下,物體在Scene視圖中所呈現的畫面效果時候,距離攝像機近的物體顯得比較大,距離攝像機遠的物體顯得比較小,這也是人眼在現實世界中的觀察模式,同時也是繪畫中常用的透視技巧。而ISO正交模式(又稱作平行視圖)模式下,不論物體距離攝像機的距離有多遠,給人的感覺是一樣大的。

但是在Game視圖中,這兩個模式給人呈現的效果都是一樣的,也就是距離攝像機近就顯得大,距離攝像機遠就顯得小。

通常情況下我們默認採用persp頭飾和模式。

或許你已經注意到了,現在這個代表玩家角色的遊戲對象的位置並不是那麼的令人滿意,那麼應該怎麼辦呢?

這個時候,該是Unity的工具欄閃亮登場的時候了。

Unity的工具欄位於菜單欄之下,由五大部分組成,它為我們提供了幾個常用功能的便捷訪問方式,不過筆者還是推薦大家多利用快捷鍵來選擇合適的工具使用。

1. 變換工具

變換工具(Transform Tools)主要針對Scene視圖,主要用於實現對於遊戲對象的方位控制,包括位置、旋轉、縮放等,如圖所示:

變換工具是一組工具的集合,具體從左到右依次簡單介紹下。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

(1)手型工具

手型工具可以在Scene視圖中進行視角的平移,快捷鍵為Q。選擇手型工具並按住Alt可以旋轉當前的場景視角。另外,按住Alt並且用鼠標右鍵左右拖動可以縮放和拉近場景,鼠標的滾輪可以實現相同的效果。當我們需要查看遊戲場景的全貌和細節時,熟練使用手型工具是基本的要求。

小練習:

使用手型工具練習查看遊戲場景的每一處細節。

(2)移動工具

移動工具用來更改場景中游戲對象的位置,快捷鍵為W。在層級視圖選擇任意遊戲對象,該物體上會出現一個三維座標軸,通過拖動座標軸的箭頭可以更改遊戲對象在對應軸向的位置。如果明確要將它放置到哪個位置的話,也可以修改物體Inspectro檢視視圖中Transform的對應數值,來達到相同的效果。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用移動工具選中場景中的某個物體,並將其移動到其它位置。

3)旋轉工具

旋轉工具可以修改遊戲對象在三個座標軸上的旋轉角度,快捷鍵為E。如果清楚需要旋轉的角度值,可以直接在物體檢視視圖中的Transform組件對Rotation進行修改,來達到相同的效果。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用旋轉工具旋轉場景中的某個物體。

(4)縮放工具

縮放工具用於修改遊戲對象的大小,快捷鍵為R。選中游戲對象並且使用縮放工具的時候,座標軸的箭頭變成紅色、綠色、藍色三個小方塊,以及代表物體中心點的灰色小方塊,拖動紅色、綠色、藍色三個小方塊可以對遊戲對象沿著某一軸向進行縮放調整。按住座標軸原點的灰色方塊進行拖動的話,可以調整整個遊戲對象的大小。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用縮放工具放大或縮小基地內外的場景物體。

(5)矩形工具

矩形工具用來方便用戶查看和編輯2D或3D遊戲對象的矩形手柄(Rect Handles),快捷鍵為T。矩形工具在2D遊戲中的主要作用是調整UI的設置,在3D遊戲中也可以靈活的可視化的調整3D物體的位置和大小。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

這裡我們就先不多說了,感興趣的童鞋可以完成下面的小練習。

小練習:

在Hierarchy層級視圖中右鍵單擊空白區域,添加一個Canvas對象,然後右鍵單擊Canvas,選擇UI-Button,從而創建一個按鈕。點開Button的下三角,選中Text,然後在Inspector視圖中修改Text(Script)處的內容為“開始遊戲”,切換到Game視圖預覽效果。

然後回到Scene視圖中,選擇工具欄上的矩形工具調整按鈕的大小。

(6)操作工具

可以把操作工具看作移動工具、縮放工具和旋轉工具的集合體,快捷鍵是Y。使用它可以更靈活的調整所選3D物體的位置、旋轉和縮放。

使用以上這些工具,就可以輕鬆查看遊戲場景,或是重新調整遊戲場景中物體的比例,旋轉方向,位置等等屬性~

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你是處女座或者強迫症患者,可能已經因為下面的紅色警告符號心神不寧了~

Don’t panic,這裡的紅色警告絕對不是因為你的操作而導致的,而且它並不會影響到項目的運行。這裡我們暫時選擇無視就好。

注意:

有些紅色警告代表項目中的資源或代碼存在一定的問題,這裡無視不代表以後遇到類似的情況一概無視。

考慮到我們這款遊戲是第一人稱視角的,所以需要找到一個第一人稱視角的遊戲角色,然後把他/她放到遊戲場景之中。

那麼這個角色在哪裡呢?

在Project視圖中找到Standard Assets->Characters->FirstPersonCharacter->Prefabs這個目錄,裡面有兩個藍色圖標的文件,分別是FPSController和RigidBodyFPSController,這就是我們想要的。

那麼這兩種角色有什麼區別呢?在後面講到物理引擎的時候你就會明白,這裡我們選擇第一個FPSController。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

順便提一下,在之前的課程內容中我們曾經提到過Unity中一個非常重要的概念Prefab,也就是預設體。

這裡再重溫一下什麼是預設體。

Prefabs是一個遊戲對象及其組件的集合,目的是使得遊戲對象可以被重複使用。

這麼描述或許有點抽象,一個形象的比喻是,預設體就好比模板,我們可以使用預設體在場景中快速創建一個具有特定組件屬性值的遊戲對象。

這裡的FPSController就是一個第一人稱視角角色控制器的預設體。

感興趣的童鞋可以左鍵單擊FPSController,在Unity編輯器右上角的Inspector視圖中會出現一個Open Prefab按鈕,點擊後就可以看到這個預設體對象的詳細屬性設置了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在FPSController這個預設體中有很多組件,不同的組件給它提供了不同的功能和特性。考慮到大家還是小白,這裡我們就先不展開講FPSController預設體所有組件的詳細作用了。

好了,我們已經有了一個代表玩家角色的預設體。

那麼接下來問題來了,我們如何在遊戲場景中使用預設體呢?

有兩種方式,一種是所見即所得,只需要將預設體從Project視圖中拖動到場景中就好了。

另一種方式是通過代碼來手動生成預設體的實例對象。考慮到我們還沒學過C#,第二種方式有點難為大家了。那我們挑個簡單點的方式,用第一種方式好了。

左鍵單擊FPSController不放,拖動到Scene視圖或是Hierarchy視圖中,然後鬆開鼠標。

可以看到,在場景中的某個地方(取決於你鬆開鼠標的那一刻)會看到一個綠色線框一樣的東西,上面還有一個喇叭圖標和一個攝像機圖標。這個就是我們的主角了~

是不是有點失望?其實這是因為我們選擇的是第一人稱視角,所以它的主要作用之一就是提供了一個攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

接下來我們先來了解Unity編輯器中的另外一個重要視圖-Game視圖。

它的作用是顯示玩家在遊戲中所看到的內容,畫面經過場景中的相機進行渲染後呈現在視圖上。和場景Scene視圖不同的是,展示在遊戲Game視圖區的畫面將是玩家實際看到的畫面。

點擊Scene視圖標籤右邊的Game標籤,就會看到玩家視角會看到的畫面了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

之前沒有讓大家切換到Game視圖,是因為在outpost on desert這個場景中,默認情況下並沒有提供攝像機,所以如果有好奇心比較重的寶寶切換過去,可能會看到類似下面的畫面。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在Game視圖中還可以通過頂部的Display選擇和Free Aspect選項來切換顯示的畫幅,通過Scale來縮放遊戲畫面,並設置是否在預覽遊戲時最大化畫面顯示(Maximize On Play)、是否關閉音效(Mute Audio)、是否顯示某些特定的組件(Gizmos)等選項。對於開發者來說,這裡有個非常重要的Stats選項,打開它之後可以看到遊戲當前的性能表現,這個選項是非常有用的。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

好了,我們對Game視圖已經有了足夠的認識,在後續的學習中會通過不斷的重複練習來更加熟悉。

在Hierarchy視圖中點擊FPSController的三角將其展開,然後點擊FirstPersonCharacter,可以看到在Inspector視圖中有一個Camera組件,也就是攝像機。

關於攝像機的知識,這裡讓我們再次重溫下。

Unity的遊戲場景是通過將物體在三維的空間中放置和移動而創作出來的。但是在非VR的傳統設備上(如電腦和手機等),屏幕是二維的。因此,需要採用一種方式捕捉計算機畫面並將三維的畫面“展平”以顯示在2D的屏幕上。而這一切正是通過攝像機(Camera)來實現的。

Unity中提供了兩種攝像機:分別是Perspective(透視)和Orthographic(正交)攝像機。

其中透視攝像機模擬的是真實世界中人眼觀察世界的方式,用於創建仿真的虛擬世界。默認情況下Unity會使用透視攝像機。不過在某些情況下可能我們需要創建一些非仿真的對象,比如場景地圖或遊戲信息等,此時就會採用正交攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

對於這裡的攝像機來說,當然是普通的Perspective透視模式了。

點擊Scene標籤返回到場景視圖,我們可以通過右上角紅綠藍三色部分的多種視角來查看場景的外觀和內容。右鍵單擊xyz軸下面的 Persp,可以看到出現了多個選項,開發者可以在這裡切換視角。不過默認情況下我們還是採用Free+Perspective(透視)的視圖方式,這裡的Perspective代表透視。如果取消Perspective的勾選,那麼就是所謂的ISO(正交視圖),此時頂部標出的區域會顯示2D。

persp透視模式和ISO正交模式的區別是什麼呢?

在persp模式下,物體在Scene視圖中所呈現的畫面效果時候,距離攝像機近的物體顯得比較大,距離攝像機遠的物體顯得比較小,這也是人眼在現實世界中的觀察模式,同時也是繪畫中常用的透視技巧。而ISO正交模式(又稱作平行視圖)模式下,不論物體距離攝像機的距離有多遠,給人的感覺是一樣大的。

但是在Game視圖中,這兩個模式給人呈現的效果都是一樣的,也就是距離攝像機近就顯得大,距離攝像機遠就顯得小。

通常情況下我們默認採用persp頭飾和模式。

或許你已經注意到了,現在這個代表玩家角色的遊戲對象的位置並不是那麼的令人滿意,那麼應該怎麼辦呢?

這個時候,該是Unity的工具欄閃亮登場的時候了。

Unity的工具欄位於菜單欄之下,由五大部分組成,它為我們提供了幾個常用功能的便捷訪問方式,不過筆者還是推薦大家多利用快捷鍵來選擇合適的工具使用。

1. 變換工具

變換工具(Transform Tools)主要針對Scene視圖,主要用於實現對於遊戲對象的方位控制,包括位置、旋轉、縮放等,如圖所示:

變換工具是一組工具的集合,具體從左到右依次簡單介紹下。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

(1)手型工具

手型工具可以在Scene視圖中進行視角的平移,快捷鍵為Q。選擇手型工具並按住Alt可以旋轉當前的場景視角。另外,按住Alt並且用鼠標右鍵左右拖動可以縮放和拉近場景,鼠標的滾輪可以實現相同的效果。當我們需要查看遊戲場景的全貌和細節時,熟練使用手型工具是基本的要求。

小練習:

使用手型工具練習查看遊戲場景的每一處細節。

(2)移動工具

移動工具用來更改場景中游戲對象的位置,快捷鍵為W。在層級視圖選擇任意遊戲對象,該物體上會出現一個三維座標軸,通過拖動座標軸的箭頭可以更改遊戲對象在對應軸向的位置。如果明確要將它放置到哪個位置的話,也可以修改物體Inspectro檢視視圖中Transform的對應數值,來達到相同的效果。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用移動工具選中場景中的某個物體,並將其移動到其它位置。

3)旋轉工具

旋轉工具可以修改遊戲對象在三個座標軸上的旋轉角度,快捷鍵為E。如果清楚需要旋轉的角度值,可以直接在物體檢視視圖中的Transform組件對Rotation進行修改,來達到相同的效果。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用旋轉工具旋轉場景中的某個物體。

(4)縮放工具

縮放工具用於修改遊戲對象的大小,快捷鍵為R。選中游戲對象並且使用縮放工具的時候,座標軸的箭頭變成紅色、綠色、藍色三個小方塊,以及代表物體中心點的灰色小方塊,拖動紅色、綠色、藍色三個小方塊可以對遊戲對象沿著某一軸向進行縮放調整。按住座標軸原點的灰色方塊進行拖動的話,可以調整整個遊戲對象的大小。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用縮放工具放大或縮小基地內外的場景物體。

(5)矩形工具

矩形工具用來方便用戶查看和編輯2D或3D遊戲對象的矩形手柄(Rect Handles),快捷鍵為T。矩形工具在2D遊戲中的主要作用是調整UI的設置,在3D遊戲中也可以靈活的可視化的調整3D物體的位置和大小。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

這裡我們就先不多說了,感興趣的童鞋可以完成下面的小練習。

小練習:

在Hierarchy層級視圖中右鍵單擊空白區域,添加一個Canvas對象,然後右鍵單擊Canvas,選擇UI-Button,從而創建一個按鈕。點開Button的下三角,選中Text,然後在Inspector視圖中修改Text(Script)處的內容為“開始遊戲”,切換到Game視圖預覽效果。

然後回到Scene視圖中,選擇工具欄上的矩形工具調整按鈕的大小。

(6)操作工具

可以把操作工具看作移動工具、縮放工具和旋轉工具的集合體,快捷鍵是Y。使用它可以更靈活的調整所選3D物體的位置、旋轉和縮放。

使用以上這些工具,就可以輕鬆查看遊戲場景,或是重新調整遊戲場景中物體的比例,旋轉方向,位置等等屬性~

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

(7)定製編輯器工具

我們暫時也還用不上,所以這裡就不多講了。

好了,在熟悉了這些基本的變換工具之後,剛才的小任務應該就沒有那麼的難了。

不過為了進一步簡化任務,我們先在Hierarchy視圖中選中FPSController這個遊戲對象,然後點擊右鍵-Delete把它刪除。

然後我們使用手型工具,配合鼠標定位到基地中的某個合適的位置。此時再把FPSController拖動到場景中。需要注意的是,FPSController這個遊戲對象是有高度的,在Character Controller組件的Height屬性那裡可以看到高度是1.8。所以我們需要在Transform組件的Position裡面把Y設置成0.9,讓他正好站在地面上~

設置的方法很簡單,在Hierarchy視圖中選中剛剛添加的FPSController遊戲對象,然後在Inspector視圖中修改對應的屬性就好了。

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你是處女座或者強迫症患者,可能已經因為下面的紅色警告符號心神不寧了~

Don’t panic,這裡的紅色警告絕對不是因為你的操作而導致的,而且它並不會影響到項目的運行。這裡我們暫時選擇無視就好。

注意:

有些紅色警告代表項目中的資源或代碼存在一定的問題,這裡無視不代表以後遇到類似的情況一概無視。

考慮到我們這款遊戲是第一人稱視角的,所以需要找到一個第一人稱視角的遊戲角色,然後把他/她放到遊戲場景之中。

那麼這個角色在哪裡呢?

在Project視圖中找到Standard Assets->Characters->FirstPersonCharacter->Prefabs這個目錄,裡面有兩個藍色圖標的文件,分別是FPSController和RigidBodyFPSController,這就是我們想要的。

那麼這兩種角色有什麼區別呢?在後面講到物理引擎的時候你就會明白,這裡我們選擇第一個FPSController。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

順便提一下,在之前的課程內容中我們曾經提到過Unity中一個非常重要的概念Prefab,也就是預設體。

這裡再重溫一下什麼是預設體。

Prefabs是一個遊戲對象及其組件的集合,目的是使得遊戲對象可以被重複使用。

這麼描述或許有點抽象,一個形象的比喻是,預設體就好比模板,我們可以使用預設體在場景中快速創建一個具有特定組件屬性值的遊戲對象。

這裡的FPSController就是一個第一人稱視角角色控制器的預設體。

感興趣的童鞋可以左鍵單擊FPSController,在Unity編輯器右上角的Inspector視圖中會出現一個Open Prefab按鈕,點擊後就可以看到這個預設體對象的詳細屬性設置了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在FPSController這個預設體中有很多組件,不同的組件給它提供了不同的功能和特性。考慮到大家還是小白,這裡我們就先不展開講FPSController預設體所有組件的詳細作用了。

好了,我們已經有了一個代表玩家角色的預設體。

那麼接下來問題來了,我們如何在遊戲場景中使用預設體呢?

有兩種方式,一種是所見即所得,只需要將預設體從Project視圖中拖動到場景中就好了。

另一種方式是通過代碼來手動生成預設體的實例對象。考慮到我們還沒學過C#,第二種方式有點難為大家了。那我們挑個簡單點的方式,用第一種方式好了。

左鍵單擊FPSController不放,拖動到Scene視圖或是Hierarchy視圖中,然後鬆開鼠標。

可以看到,在場景中的某個地方(取決於你鬆開鼠標的那一刻)會看到一個綠色線框一樣的東西,上面還有一個喇叭圖標和一個攝像機圖標。這個就是我們的主角了~

是不是有點失望?其實這是因為我們選擇的是第一人稱視角,所以它的主要作用之一就是提供了一個攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

接下來我們先來了解Unity編輯器中的另外一個重要視圖-Game視圖。

它的作用是顯示玩家在遊戲中所看到的內容,畫面經過場景中的相機進行渲染後呈現在視圖上。和場景Scene視圖不同的是,展示在遊戲Game視圖區的畫面將是玩家實際看到的畫面。

點擊Scene視圖標籤右邊的Game標籤,就會看到玩家視角會看到的畫面了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

之前沒有讓大家切換到Game視圖,是因為在outpost on desert這個場景中,默認情況下並沒有提供攝像機,所以如果有好奇心比較重的寶寶切換過去,可能會看到類似下面的畫面。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在Game視圖中還可以通過頂部的Display選擇和Free Aspect選項來切換顯示的畫幅,通過Scale來縮放遊戲畫面,並設置是否在預覽遊戲時最大化畫面顯示(Maximize On Play)、是否關閉音效(Mute Audio)、是否顯示某些特定的組件(Gizmos)等選項。對於開發者來說,這裡有個非常重要的Stats選項,打開它之後可以看到遊戲當前的性能表現,這個選項是非常有用的。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

好了,我們對Game視圖已經有了足夠的認識,在後續的學習中會通過不斷的重複練習來更加熟悉。

在Hierarchy視圖中點擊FPSController的三角將其展開,然後點擊FirstPersonCharacter,可以看到在Inspector視圖中有一個Camera組件,也就是攝像機。

關於攝像機的知識,這裡讓我們再次重溫下。

Unity的遊戲場景是通過將物體在三維的空間中放置和移動而創作出來的。但是在非VR的傳統設備上(如電腦和手機等),屏幕是二維的。因此,需要採用一種方式捕捉計算機畫面並將三維的畫面“展平”以顯示在2D的屏幕上。而這一切正是通過攝像機(Camera)來實現的。

Unity中提供了兩種攝像機:分別是Perspective(透視)和Orthographic(正交)攝像機。

其中透視攝像機模擬的是真實世界中人眼觀察世界的方式,用於創建仿真的虛擬世界。默認情況下Unity會使用透視攝像機。不過在某些情況下可能我們需要創建一些非仿真的對象,比如場景地圖或遊戲信息等,此時就會採用正交攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

對於這裡的攝像機來說,當然是普通的Perspective透視模式了。

點擊Scene標籤返回到場景視圖,我們可以通過右上角紅綠藍三色部分的多種視角來查看場景的外觀和內容。右鍵單擊xyz軸下面的 Persp,可以看到出現了多個選項,開發者可以在這裡切換視角。不過默認情況下我們還是採用Free+Perspective(透視)的視圖方式,這裡的Perspective代表透視。如果取消Perspective的勾選,那麼就是所謂的ISO(正交視圖),此時頂部標出的區域會顯示2D。

persp透視模式和ISO正交模式的區別是什麼呢?

在persp模式下,物體在Scene視圖中所呈現的畫面效果時候,距離攝像機近的物體顯得比較大,距離攝像機遠的物體顯得比較小,這也是人眼在現實世界中的觀察模式,同時也是繪畫中常用的透視技巧。而ISO正交模式(又稱作平行視圖)模式下,不論物體距離攝像機的距離有多遠,給人的感覺是一樣大的。

但是在Game視圖中,這兩個模式給人呈現的效果都是一樣的,也就是距離攝像機近就顯得大,距離攝像機遠就顯得小。

通常情況下我們默認採用persp頭飾和模式。

或許你已經注意到了,現在這個代表玩家角色的遊戲對象的位置並不是那麼的令人滿意,那麼應該怎麼辦呢?

這個時候,該是Unity的工具欄閃亮登場的時候了。

Unity的工具欄位於菜單欄之下,由五大部分組成,它為我們提供了幾個常用功能的便捷訪問方式,不過筆者還是推薦大家多利用快捷鍵來選擇合適的工具使用。

1. 變換工具

變換工具(Transform Tools)主要針對Scene視圖,主要用於實現對於遊戲對象的方位控制,包括位置、旋轉、縮放等,如圖所示:

變換工具是一組工具的集合,具體從左到右依次簡單介紹下。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

(1)手型工具

手型工具可以在Scene視圖中進行視角的平移,快捷鍵為Q。選擇手型工具並按住Alt可以旋轉當前的場景視角。另外,按住Alt並且用鼠標右鍵左右拖動可以縮放和拉近場景,鼠標的滾輪可以實現相同的效果。當我們需要查看遊戲場景的全貌和細節時,熟練使用手型工具是基本的要求。

小練習:

使用手型工具練習查看遊戲場景的每一處細節。

(2)移動工具

移動工具用來更改場景中游戲對象的位置,快捷鍵為W。在層級視圖選擇任意遊戲對象,該物體上會出現一個三維座標軸,通過拖動座標軸的箭頭可以更改遊戲對象在對應軸向的位置。如果明確要將它放置到哪個位置的話,也可以修改物體Inspectro檢視視圖中Transform的對應數值,來達到相同的效果。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用移動工具選中場景中的某個物體,並將其移動到其它位置。

3)旋轉工具

旋轉工具可以修改遊戲對象在三個座標軸上的旋轉角度,快捷鍵為E。如果清楚需要旋轉的角度值,可以直接在物體檢視視圖中的Transform組件對Rotation進行修改,來達到相同的效果。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用旋轉工具旋轉場景中的某個物體。

(4)縮放工具

縮放工具用於修改遊戲對象的大小,快捷鍵為R。選中游戲對象並且使用縮放工具的時候,座標軸的箭頭變成紅色、綠色、藍色三個小方塊,以及代表物體中心點的灰色小方塊,拖動紅色、綠色、藍色三個小方塊可以對遊戲對象沿著某一軸向進行縮放調整。按住座標軸原點的灰色方塊進行拖動的話,可以調整整個遊戲對象的大小。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用縮放工具放大或縮小基地內外的場景物體。

(5)矩形工具

矩形工具用來方便用戶查看和編輯2D或3D遊戲對象的矩形手柄(Rect Handles),快捷鍵為T。矩形工具在2D遊戲中的主要作用是調整UI的設置,在3D遊戲中也可以靈活的可視化的調整3D物體的位置和大小。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

這裡我們就先不多說了,感興趣的童鞋可以完成下面的小練習。

小練習:

在Hierarchy層級視圖中右鍵單擊空白區域,添加一個Canvas對象,然後右鍵單擊Canvas,選擇UI-Button,從而創建一個按鈕。點開Button的下三角,選中Text,然後在Inspector視圖中修改Text(Script)處的內容為“開始遊戲”,切換到Game視圖預覽效果。

然後回到Scene視圖中,選擇工具欄上的矩形工具調整按鈕的大小。

(6)操作工具

可以把操作工具看作移動工具、縮放工具和旋轉工具的集合體,快捷鍵是Y。使用它可以更靈活的調整所選3D物體的位置、旋轉和縮放。

使用以上這些工具,就可以輕鬆查看遊戲場景,或是重新調整遊戲場景中物體的比例,旋轉方向,位置等等屬性~

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

(7)定製編輯器工具

我們暫時也還用不上,所以這裡就不多講了。

好了,在熟悉了這些基本的變換工具之後,剛才的小任務應該就沒有那麼的難了。

不過為了進一步簡化任務,我們先在Hierarchy視圖中選中FPSController這個遊戲對象,然後點擊右鍵-Delete把它刪除。

然後我們使用手型工具,配合鼠標定位到基地中的某個合適的位置。此時再把FPSController拖動到場景中。需要注意的是,FPSController這個遊戲對象是有高度的,在Character Controller組件的Height屬性那裡可以看到高度是1.8。所以我們需要在Transform組件的Position裡面把Y設置成0.9,讓他正好站在地面上~

設置的方法很簡單,在Hierarchy視圖中選中剛剛添加的FPSController遊戲對象,然後在Inspector視圖中修改對應的屬性就好了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

這個時候,角色在場景中的大概位置是這裡。

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你是處女座或者強迫症患者,可能已經因為下面的紅色警告符號心神不寧了~

Don’t panic,這裡的紅色警告絕對不是因為你的操作而導致的,而且它並不會影響到項目的運行。這裡我們暫時選擇無視就好。

注意:

有些紅色警告代表項目中的資源或代碼存在一定的問題,這裡無視不代表以後遇到類似的情況一概無視。

考慮到我們這款遊戲是第一人稱視角的,所以需要找到一個第一人稱視角的遊戲角色,然後把他/她放到遊戲場景之中。

那麼這個角色在哪裡呢?

在Project視圖中找到Standard Assets->Characters->FirstPersonCharacter->Prefabs這個目錄,裡面有兩個藍色圖標的文件,分別是FPSController和RigidBodyFPSController,這就是我們想要的。

那麼這兩種角色有什麼區別呢?在後面講到物理引擎的時候你就會明白,這裡我們選擇第一個FPSController。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

順便提一下,在之前的課程內容中我們曾經提到過Unity中一個非常重要的概念Prefab,也就是預設體。

這裡再重溫一下什麼是預設體。

Prefabs是一個遊戲對象及其組件的集合,目的是使得遊戲對象可以被重複使用。

這麼描述或許有點抽象,一個形象的比喻是,預設體就好比模板,我們可以使用預設體在場景中快速創建一個具有特定組件屬性值的遊戲對象。

這裡的FPSController就是一個第一人稱視角角色控制器的預設體。

感興趣的童鞋可以左鍵單擊FPSController,在Unity編輯器右上角的Inspector視圖中會出現一個Open Prefab按鈕,點擊後就可以看到這個預設體對象的詳細屬性設置了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在FPSController這個預設體中有很多組件,不同的組件給它提供了不同的功能和特性。考慮到大家還是小白,這裡我們就先不展開講FPSController預設體所有組件的詳細作用了。

好了,我們已經有了一個代表玩家角色的預設體。

那麼接下來問題來了,我們如何在遊戲場景中使用預設體呢?

有兩種方式,一種是所見即所得,只需要將預設體從Project視圖中拖動到場景中就好了。

另一種方式是通過代碼來手動生成預設體的實例對象。考慮到我們還沒學過C#,第二種方式有點難為大家了。那我們挑個簡單點的方式,用第一種方式好了。

左鍵單擊FPSController不放,拖動到Scene視圖或是Hierarchy視圖中,然後鬆開鼠標。

可以看到,在場景中的某個地方(取決於你鬆開鼠標的那一刻)會看到一個綠色線框一樣的東西,上面還有一個喇叭圖標和一個攝像機圖標。這個就是我們的主角了~

是不是有點失望?其實這是因為我們選擇的是第一人稱視角,所以它的主要作用之一就是提供了一個攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

接下來我們先來了解Unity編輯器中的另外一個重要視圖-Game視圖。

它的作用是顯示玩家在遊戲中所看到的內容,畫面經過場景中的相機進行渲染後呈現在視圖上。和場景Scene視圖不同的是,展示在遊戲Game視圖區的畫面將是玩家實際看到的畫面。

點擊Scene視圖標籤右邊的Game標籤,就會看到玩家視角會看到的畫面了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

之前沒有讓大家切換到Game視圖,是因為在outpost on desert這個場景中,默認情況下並沒有提供攝像機,所以如果有好奇心比較重的寶寶切換過去,可能會看到類似下面的畫面。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在Game視圖中還可以通過頂部的Display選擇和Free Aspect選項來切換顯示的畫幅,通過Scale來縮放遊戲畫面,並設置是否在預覽遊戲時最大化畫面顯示(Maximize On Play)、是否關閉音效(Mute Audio)、是否顯示某些特定的組件(Gizmos)等選項。對於開發者來說,這裡有個非常重要的Stats選項,打開它之後可以看到遊戲當前的性能表現,這個選項是非常有用的。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

好了,我們對Game視圖已經有了足夠的認識,在後續的學習中會通過不斷的重複練習來更加熟悉。

在Hierarchy視圖中點擊FPSController的三角將其展開,然後點擊FirstPersonCharacter,可以看到在Inspector視圖中有一個Camera組件,也就是攝像機。

關於攝像機的知識,這裡讓我們再次重溫下。

Unity的遊戲場景是通過將物體在三維的空間中放置和移動而創作出來的。但是在非VR的傳統設備上(如電腦和手機等),屏幕是二維的。因此,需要採用一種方式捕捉計算機畫面並將三維的畫面“展平”以顯示在2D的屏幕上。而這一切正是通過攝像機(Camera)來實現的。

Unity中提供了兩種攝像機:分別是Perspective(透視)和Orthographic(正交)攝像機。

其中透視攝像機模擬的是真實世界中人眼觀察世界的方式,用於創建仿真的虛擬世界。默認情況下Unity會使用透視攝像機。不過在某些情況下可能我們需要創建一些非仿真的對象,比如場景地圖或遊戲信息等,此時就會採用正交攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

對於這裡的攝像機來說,當然是普通的Perspective透視模式了。

點擊Scene標籤返回到場景視圖,我們可以通過右上角紅綠藍三色部分的多種視角來查看場景的外觀和內容。右鍵單擊xyz軸下面的 Persp,可以看到出現了多個選項,開發者可以在這裡切換視角。不過默認情況下我們還是採用Free+Perspective(透視)的視圖方式,這裡的Perspective代表透視。如果取消Perspective的勾選,那麼就是所謂的ISO(正交視圖),此時頂部標出的區域會顯示2D。

persp透視模式和ISO正交模式的區別是什麼呢?

在persp模式下,物體在Scene視圖中所呈現的畫面效果時候,距離攝像機近的物體顯得比較大,距離攝像機遠的物體顯得比較小,這也是人眼在現實世界中的觀察模式,同時也是繪畫中常用的透視技巧。而ISO正交模式(又稱作平行視圖)模式下,不論物體距離攝像機的距離有多遠,給人的感覺是一樣大的。

但是在Game視圖中,這兩個模式給人呈現的效果都是一樣的,也就是距離攝像機近就顯得大,距離攝像機遠就顯得小。

通常情況下我們默認採用persp頭飾和模式。

或許你已經注意到了,現在這個代表玩家角色的遊戲對象的位置並不是那麼的令人滿意,那麼應該怎麼辦呢?

這個時候,該是Unity的工具欄閃亮登場的時候了。

Unity的工具欄位於菜單欄之下,由五大部分組成,它為我們提供了幾個常用功能的便捷訪問方式,不過筆者還是推薦大家多利用快捷鍵來選擇合適的工具使用。

1. 變換工具

變換工具(Transform Tools)主要針對Scene視圖,主要用於實現對於遊戲對象的方位控制,包括位置、旋轉、縮放等,如圖所示:

變換工具是一組工具的集合,具體從左到右依次簡單介紹下。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

(1)手型工具

手型工具可以在Scene視圖中進行視角的平移,快捷鍵為Q。選擇手型工具並按住Alt可以旋轉當前的場景視角。另外,按住Alt並且用鼠標右鍵左右拖動可以縮放和拉近場景,鼠標的滾輪可以實現相同的效果。當我們需要查看遊戲場景的全貌和細節時,熟練使用手型工具是基本的要求。

小練習:

使用手型工具練習查看遊戲場景的每一處細節。

(2)移動工具

移動工具用來更改場景中游戲對象的位置,快捷鍵為W。在層級視圖選擇任意遊戲對象,該物體上會出現一個三維座標軸,通過拖動座標軸的箭頭可以更改遊戲對象在對應軸向的位置。如果明確要將它放置到哪個位置的話,也可以修改物體Inspectro檢視視圖中Transform的對應數值,來達到相同的效果。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用移動工具選中場景中的某個物體,並將其移動到其它位置。

3)旋轉工具

旋轉工具可以修改遊戲對象在三個座標軸上的旋轉角度,快捷鍵為E。如果清楚需要旋轉的角度值,可以直接在物體檢視視圖中的Transform組件對Rotation進行修改,來達到相同的效果。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用旋轉工具旋轉場景中的某個物體。

(4)縮放工具

縮放工具用於修改遊戲對象的大小,快捷鍵為R。選中游戲對象並且使用縮放工具的時候,座標軸的箭頭變成紅色、綠色、藍色三個小方塊,以及代表物體中心點的灰色小方塊,拖動紅色、綠色、藍色三個小方塊可以對遊戲對象沿著某一軸向進行縮放調整。按住座標軸原點的灰色方塊進行拖動的話,可以調整整個遊戲對象的大小。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用縮放工具放大或縮小基地內外的場景物體。

(5)矩形工具

矩形工具用來方便用戶查看和編輯2D或3D遊戲對象的矩形手柄(Rect Handles),快捷鍵為T。矩形工具在2D遊戲中的主要作用是調整UI的設置,在3D遊戲中也可以靈活的可視化的調整3D物體的位置和大小。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

這裡我們就先不多說了,感興趣的童鞋可以完成下面的小練習。

小練習:

在Hierarchy層級視圖中右鍵單擊空白區域,添加一個Canvas對象,然後右鍵單擊Canvas,選擇UI-Button,從而創建一個按鈕。點開Button的下三角,選中Text,然後在Inspector視圖中修改Text(Script)處的內容為“開始遊戲”,切換到Game視圖預覽效果。

然後回到Scene視圖中,選擇工具欄上的矩形工具調整按鈕的大小。

(6)操作工具

可以把操作工具看作移動工具、縮放工具和旋轉工具的集合體,快捷鍵是Y。使用它可以更靈活的調整所選3D物體的位置、旋轉和縮放。

使用以上這些工具,就可以輕鬆查看遊戲場景,或是重新調整遊戲場景中物體的比例,旋轉方向,位置等等屬性~

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

(7)定製編輯器工具

我們暫時也還用不上,所以這裡就不多講了。

好了,在熟悉了這些基本的變換工具之後,剛才的小任務應該就沒有那麼的難了。

不過為了進一步簡化任務,我們先在Hierarchy視圖中選中FPSController這個遊戲對象,然後點擊右鍵-Delete把它刪除。

然後我們使用手型工具,配合鼠標定位到基地中的某個合適的位置。此時再把FPSController拖動到場景中。需要注意的是,FPSController這個遊戲對象是有高度的,在Character Controller組件的Height屬性那裡可以看到高度是1.8。所以我們需要在Transform組件的Position裡面把Y設置成0.9,讓他正好站在地面上~

設置的方法很簡單,在Hierarchy視圖中選中剛剛添加的FPSController遊戲對象,然後在Inspector視圖中修改對應的屬性就好了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

這個時候,角色在場景中的大概位置是這裡。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

提示:

如果你不知道角色放到哪裡最合適,那麼可以直接把上圖中Transform組件的Position屬性值複製~

好了,場景已經有了,角色也有了,那麼怎麼才能預覽遊戲的效果呢?

很簡單,直接點擊編輯器中間上方的播放控制按鈕就好了。

播放控制(Play)應用於Game視圖,如圖所示。

"

在上一課的內容中,我們從Asset Store(遊戲資源商城)中導入了遊戲場景資源。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

在這一課的內容中,我們將在場景中添加一個第一人稱視角的角色,並進一步熟悉Unity的編輯器。

014 你人生的第一款遊戲05-添加遊戲角色

為了簡單起見,我們的遊戲角色仍然會從Unity Asset Store中下載。

小練習:

打開Unity Asset Store,在裡面搜索Standard Assets,然後下載並導入到當前的項目之中。

提示:

參考下面這個圖在Asset Store中搜索。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你在下載和導入的過程中有任何問題,請回到上一課的內容,或者在討論區分享。

導入完成之後,會發現Unity編輯器中Project視圖是下面這樣的:

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

如果你是處女座或者強迫症患者,可能已經因為下面的紅色警告符號心神不寧了~

Don’t panic,這裡的紅色警告絕對不是因為你的操作而導致的,而且它並不會影響到項目的運行。這裡我們暫時選擇無視就好。

注意:

有些紅色警告代表項目中的資源或代碼存在一定的問題,這裡無視不代表以後遇到類似的情況一概無視。

考慮到我們這款遊戲是第一人稱視角的,所以需要找到一個第一人稱視角的遊戲角色,然後把他/她放到遊戲場景之中。

那麼這個角色在哪裡呢?

在Project視圖中找到Standard Assets->Characters->FirstPersonCharacter->Prefabs這個目錄,裡面有兩個藍色圖標的文件,分別是FPSController和RigidBodyFPSController,這就是我們想要的。

那麼這兩種角色有什麼區別呢?在後面講到物理引擎的時候你就會明白,這裡我們選擇第一個FPSController。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

順便提一下,在之前的課程內容中我們曾經提到過Unity中一個非常重要的概念Prefab,也就是預設體。

這裡再重溫一下什麼是預設體。

Prefabs是一個遊戲對象及其組件的集合,目的是使得遊戲對象可以被重複使用。

這麼描述或許有點抽象,一個形象的比喻是,預設體就好比模板,我們可以使用預設體在場景中快速創建一個具有特定組件屬性值的遊戲對象。

這裡的FPSController就是一個第一人稱視角角色控制器的預設體。

感興趣的童鞋可以左鍵單擊FPSController,在Unity編輯器右上角的Inspector視圖中會出現一個Open Prefab按鈕,點擊後就可以看到這個預設體對象的詳細屬性設置了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在FPSController這個預設體中有很多組件,不同的組件給它提供了不同的功能和特性。考慮到大家還是小白,這裡我們就先不展開講FPSController預設體所有組件的詳細作用了。

好了,我們已經有了一個代表玩家角色的預設體。

那麼接下來問題來了,我們如何在遊戲場景中使用預設體呢?

有兩種方式,一種是所見即所得,只需要將預設體從Project視圖中拖動到場景中就好了。

另一種方式是通過代碼來手動生成預設體的實例對象。考慮到我們還沒學過C#,第二種方式有點難為大家了。那我們挑個簡單點的方式,用第一種方式好了。

左鍵單擊FPSController不放,拖動到Scene視圖或是Hierarchy視圖中,然後鬆開鼠標。

可以看到,在場景中的某個地方(取決於你鬆開鼠標的那一刻)會看到一個綠色線框一樣的東西,上面還有一個喇叭圖標和一個攝像機圖標。這個就是我們的主角了~

是不是有點失望?其實這是因為我們選擇的是第一人稱視角,所以它的主要作用之一就是提供了一個攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

接下來我們先來了解Unity編輯器中的另外一個重要視圖-Game視圖。

它的作用是顯示玩家在遊戲中所看到的內容,畫面經過場景中的相機進行渲染後呈現在視圖上。和場景Scene視圖不同的是,展示在遊戲Game視圖區的畫面將是玩家實際看到的畫面。

點擊Scene視圖標籤右邊的Game標籤,就會看到玩家視角會看到的畫面了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

之前沒有讓大家切換到Game視圖,是因為在outpost on desert這個場景中,默認情況下並沒有提供攝像機,所以如果有好奇心比較重的寶寶切換過去,可能會看到類似下面的畫面。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

可以看到,在Game視圖中還可以通過頂部的Display選擇和Free Aspect選項來切換顯示的畫幅,通過Scale來縮放遊戲畫面,並設置是否在預覽遊戲時最大化畫面顯示(Maximize On Play)、是否關閉音效(Mute Audio)、是否顯示某些特定的組件(Gizmos)等選項。對於開發者來說,這裡有個非常重要的Stats選項,打開它之後可以看到遊戲當前的性能表現,這個選項是非常有用的。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

好了,我們對Game視圖已經有了足夠的認識,在後續的學習中會通過不斷的重複練習來更加熟悉。

在Hierarchy視圖中點擊FPSController的三角將其展開,然後點擊FirstPersonCharacter,可以看到在Inspector視圖中有一個Camera組件,也就是攝像機。

關於攝像機的知識,這裡讓我們再次重溫下。

Unity的遊戲場景是通過將物體在三維的空間中放置和移動而創作出來的。但是在非VR的傳統設備上(如電腦和手機等),屏幕是二維的。因此,需要採用一種方式捕捉計算機畫面並將三維的畫面“展平”以顯示在2D的屏幕上。而這一切正是通過攝像機(Camera)來實現的。

Unity中提供了兩種攝像機:分別是Perspective(透視)和Orthographic(正交)攝像機。

其中透視攝像機模擬的是真實世界中人眼觀察世界的方式,用於創建仿真的虛擬世界。默認情況下Unity會使用透視攝像機。不過在某些情況下可能我們需要創建一些非仿真的對象,比如場景地圖或遊戲信息等,此時就會採用正交攝像機。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

對於這裡的攝像機來說,當然是普通的Perspective透視模式了。

點擊Scene標籤返回到場景視圖,我們可以通過右上角紅綠藍三色部分的多種視角來查看場景的外觀和內容。右鍵單擊xyz軸下面的 Persp,可以看到出現了多個選項,開發者可以在這裡切換視角。不過默認情況下我們還是採用Free+Perspective(透視)的視圖方式,這裡的Perspective代表透視。如果取消Perspective的勾選,那麼就是所謂的ISO(正交視圖),此時頂部標出的區域會顯示2D。

persp透視模式和ISO正交模式的區別是什麼呢?

在persp模式下,物體在Scene視圖中所呈現的畫面效果時候,距離攝像機近的物體顯得比較大,距離攝像機遠的物體顯得比較小,這也是人眼在現實世界中的觀察模式,同時也是繪畫中常用的透視技巧。而ISO正交模式(又稱作平行視圖)模式下,不論物體距離攝像機的距離有多遠,給人的感覺是一樣大的。

但是在Game視圖中,這兩個模式給人呈現的效果都是一樣的,也就是距離攝像機近就顯得大,距離攝像機遠就顯得小。

通常情況下我們默認採用persp頭飾和模式。

或許你已經注意到了,現在這個代表玩家角色的遊戲對象的位置並不是那麼的令人滿意,那麼應該怎麼辦呢?

這個時候,該是Unity的工具欄閃亮登場的時候了。

Unity的工具欄位於菜單欄之下,由五大部分組成,它為我們提供了幾個常用功能的便捷訪問方式,不過筆者還是推薦大家多利用快捷鍵來選擇合適的工具使用。

1. 變換工具

變換工具(Transform Tools)主要針對Scene視圖,主要用於實現對於遊戲對象的方位控制,包括位置、旋轉、縮放等,如圖所示:

變換工具是一組工具的集合,具體從左到右依次簡單介紹下。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

(1)手型工具

手型工具可以在Scene視圖中進行視角的平移,快捷鍵為Q。選擇手型工具並按住Alt可以旋轉當前的場景視角。另外,按住Alt並且用鼠標右鍵左右拖動可以縮放和拉近場景,鼠標的滾輪可以實現相同的效果。當我們需要查看遊戲場景的全貌和細節時,熟練使用手型工具是基本的要求。

小練習:

使用手型工具練習查看遊戲場景的每一處細節。

(2)移動工具

移動工具用來更改場景中游戲對象的位置,快捷鍵為W。在層級視圖選擇任意遊戲對象,該物體上會出現一個三維座標軸,通過拖動座標軸的箭頭可以更改遊戲對象在對應軸向的位置。如果明確要將它放置到哪個位置的話,也可以修改物體Inspectro檢視視圖中Transform的對應數值,來達到相同的效果。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用移動工具選中場景中的某個物體,並將其移動到其它位置。

3)旋轉工具

旋轉工具可以修改遊戲對象在三個座標軸上的旋轉角度,快捷鍵為E。如果清楚需要旋轉的角度值,可以直接在物體檢視視圖中的Transform組件對Rotation進行修改,來達到相同的效果。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用旋轉工具旋轉場景中的某個物體。

(4)縮放工具

縮放工具用於修改遊戲對象的大小,快捷鍵為R。選中游戲對象並且使用縮放工具的時候,座標軸的箭頭變成紅色、綠色、藍色三個小方塊,以及代表物體中心點的灰色小方塊,拖動紅色、綠色、藍色三個小方塊可以對遊戲對象沿著某一軸向進行縮放調整。按住座標軸原點的灰色方塊進行拖動的話,可以調整整個遊戲對象的大小。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

小練習:

使用縮放工具放大或縮小基地內外的場景物體。

(5)矩形工具

矩形工具用來方便用戶查看和編輯2D或3D遊戲對象的矩形手柄(Rect Handles),快捷鍵為T。矩形工具在2D遊戲中的主要作用是調整UI的設置,在3D遊戲中也可以靈活的可視化的調整3D物體的位置和大小。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

這裡我們就先不多說了,感興趣的童鞋可以完成下面的小練習。

小練習:

在Hierarchy層級視圖中右鍵單擊空白區域,添加一個Canvas對象,然後右鍵單擊Canvas,選擇UI-Button,從而創建一個按鈕。點開Button的下三角,選中Text,然後在Inspector視圖中修改Text(Script)處的內容為“開始遊戲”,切換到Game視圖預覽效果。

然後回到Scene視圖中,選擇工具欄上的矩形工具調整按鈕的大小。

(6)操作工具

可以把操作工具看作移動工具、縮放工具和旋轉工具的集合體,快捷鍵是Y。使用它可以更靈活的調整所選3D物體的位置、旋轉和縮放。

使用以上這些工具,就可以輕鬆查看遊戲場景,或是重新調整遊戲場景中物體的比例,旋轉方向,位置等等屬性~

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

(7)定製編輯器工具

我們暫時也還用不上,所以這裡就不多講了。

好了,在熟悉了這些基本的變換工具之後,剛才的小任務應該就沒有那麼的難了。

不過為了進一步簡化任務,我們先在Hierarchy視圖中選中FPSController這個遊戲對象,然後點擊右鍵-Delete把它刪除。

然後我們使用手型工具,配合鼠標定位到基地中的某個合適的位置。此時再把FPSController拖動到場景中。需要注意的是,FPSController這個遊戲對象是有高度的,在Character Controller組件的Height屬性那裡可以看到高度是1.8。所以我們需要在Transform組件的Position裡面把Y設置成0.9,讓他正好站在地面上~

設置的方法很簡單,在Hierarchy視圖中選中剛剛添加的FPSController遊戲對象,然後在Inspector視圖中修改對應的屬性就好了。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

這個時候,角色在場景中的大概位置是這裡。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

提示:

如果你不知道角色放到哪裡最合適,那麼可以直接把上圖中Transform組件的Position屬性值複製~

好了,場景已經有了,角色也有了,那麼怎麼才能預覽遊戲的效果呢?

很簡單,直接點擊編輯器中間上方的播放控制按鈕就好了。

播放控制(Play)應用於Game視圖,如圖所示。

讓不懂編程的人愛上Unity3d遊戲開發014-添加遊戲角色

三個按鈕分別對應的是Play(播放),Pause(暫停),Step(步進)。點擊最左邊的播放Play控制按鈕,Game視圖會被激活,並開始實時顯示遊戲運行的畫面。

只有按了Play鍵,Pause和Step才能被啟用。

需要注意的是,在單擊播放控制按鈕後,雖然開發者可以繼續對遊戲對象的屬性在Inspector視圖中進行修改,但是在項目運行結束後,期間所做的操作會被重置。

中間的暫停按鈕用於暫停遊戲的運行狀態。在暫停Pause情況下,可以對遊戲在特定的運行時間進行檢查,加強對遊戲的調試。如果按Step鍵,那麼遊戲會自動Pause,然後逐幀運行,有助於強化對於遊戲的調試和性能優化。

這裡,我們需要點擊的是Play(播放)按鈕,就可以預覽玩家看到的遊戲場景了~

左右移動鼠標,可以看到玩家看到的場景發生了變化。按下鍵盤上的AWSD按鈕,可以實現前進、後退、左轉、右轉等操作,並且在場景之中任意漫遊,甚至還可以聽到角色的腳步聲。這一切是不是很酷呢

這一課的內容就到此圓滿結束了,我們成功的添加了遊戲角色,而且通過播放按鈕,可以預覽遊戲的實際效果,前進了一大步~

在繼續完善遊戲之前,我們還需要進一步熟悉Unity的編輯器。

讓我們下一課再見。

"

相關推薦

推薦中...