日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《Unity 游戏设计与实现 南梦宫一线程序员的开发实例》学习笔记01

發(fā)布時間:2023/12/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Unity 游戏设计与实现 南梦宫一线程序员的开发实例》学习笔记01 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第0章 Unity概要

這是我的Unity初體驗,之前沒有接觸過Unity引擎,但是確實很想學習,就先閱讀了一點Unity Manual。熟悉了一下軟件界面各窗口功能后,覺得Unity Manual 介紹的各方面很細,但是不能給我一個完整的 Unity 開發(fā)的概念。 在不斷的尋找過程中,發(fā)現(xiàn)了對于本書的推薦。先簡單的看了一下本書試讀章節(jié)的pdf,學著做了一下小球游戲的開發(fā),就下定決心買了這本書, 因為這本書重點在于介紹用Unity開發(fā)游戲的思路 。今天我用了一下午的時間,讀完了第0章。下面我就分享一下個人體會。

界面介紹在此省略,我主要說一下對Unity開發(fā)游戲的整體認識。Unity游戲是由不同場景組成的,每個場景包含眾多的GameObject,這些GameObject以及用戶輸入間的交互就形成了游戲的內(nèi)容。可以說游戲場景就像是電影場景的拍攝,布景、燈光、道具、演員、特技及攝影機等在導演的安排下演繹出精彩的故事。在游戲場景中除了有導演的安排,關(guān)鍵是玩家輸入對故事的影響。游戲設(shè)計師就相當于導演,安排了各個GameObject及用戶輸入間的交互關(guān)系。
游戲這部實時交互電影是如何拍攝的呢?首先是GameObject設(shè)計,有點像布景、道具設(shè)計、演員造型;然后是場景的布置,即對各GameObject的位置安排,這包括了3D/2D物體、燈光、攝像機的空間位置安排;再有就是各動態(tài)特性的安排,包括運動、各GameObject的交互行為的定義,包括GameObject之間的影響,特別是輸入對GameObject影響。
作為場景中的基本元素,GameObject涵蓋了物體、燈光、攝影機等種類。每種GameObject都有自己的各種基本屬性,并通過Unity中組件的概念為GameObject添加相應(yīng)的屬性與功能,如通過添加Material資源,可以改變球體的外觀,通過添加Rigidbody可以添加phisic中的剛體屬性,通過添加腳本可以添加相應(yīng)的行為定義。
Asset,資源,包含了Material、Scene、Prefab、Script等類型,Prefab可以為場景添加預(yù)設(shè)的GameObject,Material和Script可以添加到GameObject上,Scene應(yīng)該是作為游戲的組成部分進行使用。
對于Prefab(預(yù)設(shè))的理解。通過實例化預(yù)設(shè),可以為場景添加預(yù)設(shè)的實例。預(yù)設(shè)的某一屬性值改變時,則其所有實例的同一屬性發(fā)生相同修改。這些實例的屬性可以進行修改,但單純的修改不能影響到預(yù)設(shè)。只有在修改某一屬性并點擊Apply按鈕時,則預(yù)設(shè)才發(fā)生相同變化,且所有預(yù)設(shè)的實例發(fā)生相同變化。

需要注意的是,該書編寫時使用的Unity4.0版本,因此如果使用5.0以上版本學習的話,在寫腳本的時候會有一些不同。我遇到的問題就是小球游戲中Player腳本中對rigidbody訪問時的寫法是不同的。在原版本中,代碼是這樣的。

// Update is called once per framevoid Update () {if (this.is_landing){if (Input.GetMouseButtonDown(0)){this.is_landing = false;this.rigidbody.velocity = Vector3.up * this.jump_speed;}}}

而在5.0以上版本中是這樣的:

// Update is called once per framevoid Update () {if (this.is_landing){if (Input.GetMouseButtonDown(0)){this.is_landing = false;this.GetComponent<Rigidbody>().velocity = Vector3.up * this.jump_speed;}}}

因此,大家可以到圖靈社區(qū)該書的頁面中下載5.0版本的源代碼附件。

總結(jié)

以上是生活随笔為你收集整理的《Unity 游戏设计与实现 南梦宫一线程序员的开发实例》学习笔记01的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。