學前班遊戲開發入門5:發射子彈與Unity3D的預設體概念

2021-01-08 clq的程式設計師學前班

一般的遊戲當中都有戰鬥的場景,那就免不了要讓我們控制的角色發射子彈或者是弓箭等動作。在程序中這通常是動態生成一個新的物體,然後讓它沿著一定的軌跡向前運動即可。不過在 Unity3D 中這會遇上一個非常讓初學者頭痛的事情(實際上深入使用的話也會讓老手頭痛,甚至有一個叫 "uPrefabs" 的插件專門來解決這個問題)。這個問題就是"預設體"的概念。我們先來看看通常的做法是什麼樣的,這樣才好理清頭緒。

首先,這需要在場景中先建立好子彈的模型,並且關聯好各種腳本 -- 這都好理解。然後就到了關鍵的一步,要先在 Unity3D 中創建一個Prefabs 。方法如圖:

注意是右鍵點擊

右鍵在 assets 文件夾上彈出菜單,按照圖示依次選擇就可以了。然後關鍵的一步來了:將場景中要作為子彈的物體拖放到這個新建出來的 prefab 上 ... ... 我很無奈文字實在不好描述,而且對於初學者來說確實不好操作。我總結出來的 u3d 中的拖放經驗大體是這樣:先點擊要操作的物體,然後鬆開滑鼠,這個時候又要選擇另外一個物體做它的屬性或者是別的呀 ... 技巧是,這時點中要選擇的另外一個物體但千萬不要鬆開滑鼠,立即將它拖放到第一個選中的物體上就成功了!如果是作為屬性,還要精確的拖放到物體的屬性上 ...

好了,這時候可以用內置的全局函數 Instantiate() 函數來生成很多很多子彈了,但這個函數的第一個參數是類,那 u3d 怎麼知道我要創建的是什麼類呢?其實這個函數可以理解為 new 函數,只要給出 new 的類是什麼就可以了。那麼 u3d 中怎麼告訴它這個要建立的類是什麼呢?答案是:又是要拖放 ... ... 方法是先在要創建的腳本所在的類中定義一個類型為 Transform 的變量,然後回到 u3d 的 ide 界面中,將前面弄好的那個 prefab 拖放到這個變量上 ... ... 說真的,很匪夷所思的操作方式,也不知道最開始發明這種操作的人是怎麼想的。當然習慣了的話也還好了。

總之對於新手來說,這個操作要多練習。最後給出一個實際的代碼,如下:

Instantiate(fire_zt1, ship1.transform.position, ship1.transform.rotation);

這個函數還是挺方便的,第一個參數就是拖放的變量,第二個參數是位置,第三個參數就是我們前面文章說過的表示旋轉角度的4元數變量了。另外這個子彈可以讓它自動在某個時間後銷毀,方法是在子彈運行的腳本上加上以下代碼:

Destroy(this.gameObject, 2);

第二個參數就是指定多久後自動銷毀子彈,單位是秒。一般是加在子彈的 Start() 函數中。

好了,這些就是我們今天要學習的內容,不太容易理解,所以要多練習。

相關焦點

  • 學前班遊戲開發入門6:爆炸效果與Unity3D粒子系統入門
    上一期我們說到了怎樣發射子彈,那麼接下來當然是要說到爆炸效果了。通常爆炸效果由貼圖和粒子系統組成,不過貼圖顯然不是程式設計師的工作,所以我們以一個簡單的純粒子系統的實現來先入入門是很有必要的。不管是 u3d 還是別的什麼軟體,粒子系統都是異常複雜的。
  • 年薪30W的Unity3D遊戲開發崗面試題(上)
    優點:可根據距離動態地選擇渲染不同細節的模型缺點:加重美工的負擔,要準備不同細節的同一模型,同樣的會稍微增加遊戲的容量。5.如果你是0基礎學習遊戲開發,我們為你準備了免費課程:玩轉U3D遊戲開發,3天免費課程等你來!
  • 學前班遊戲開發入門3:Unity3D中的旋轉與引出的四元數知識
    這系列的 Unity3D 也是這樣,其實這些知識對於入門來說還是很重要的,要知道 Unity3D 的坑那是一點都不少 ... ... 不過也不要緊,大家可以先大概了解一下,以後用到時記得回來仔細看就行了。
  • 學前班遊戲開發入門4:Time.deltaTime與Unity3D中的長度單位
    這個問題就要涉及到 3d 遊戲的歷史了,從歷史上 3d 遊戲就是在一個函數中不停的畫屏幕的,畫得足夠快的話就會感覺畫面動起來了 ... ... 和我們知道的電影的原理是一模一樣的,所以才會有一個比較電腦性能的單位"幀"。其實就是指你的電腦每秒鐘能畫出多少次遊戲畫面,當然是越多越好了。不管這種做法多原始,反正現狀就是如此。
  • 學前班不能成「小學化」溫床
    學前班教學內容大多超出幼兒認知範圍在北京一家培訓機構舉辦的學前班的招生廣告上,記者看到,這個面向5—6歲兒童的全日制學前班,其教學內容包括:學習100以內單雙數、相鄰數及按群計數,50以內加法、減法,50以內進位加法、退位減法,各種類型應用題,平面圖形及立體圖形的認知;認讀聲母23個,單韻母6個,複韻母18個,整體認讀音節16個。
  • 【Unity3D開發小遊戲】《跑酷小遊戲》Unity開發教程
    一、前言最近跑酷遊戲比較流行,開發教程也很多,但是大部分都是不太詳細,這篇文章就帶著大家一步一步開發出來一個跑酷類的遊戲,教程比較基礎,適合大部分
  • 遊戲開發新手入門指南
    我經常被問及:一個具有很少甚至沒有編程經驗的人要如何開始遊戲製作。直到目前為止,我總是盡我所能一個一個解答。然而,問題的數量已經增長到了一個難以處理的水平,於是,我便決定把所有的建議匯總在一篇文章裡作為參考提供給人們。   這篇文章主要面向那些想開發自己的遊戲,但僅有一點點或沒有半點編程經驗的人們。實際上,我也假定讀者根本沒有任何的編程知識。
  • 在加拿大讀學前班是如何學英語的?(組圖)
    加拿大的學前班Kindergarten都是學校辦的,屬於一個年級(Grade K),作為從家裡到學校的過渡,半天學習,半天在家裡,學習內容也是遊戲為主。一年後,進入一年級,開始全天上課。女兒讀K 的時候,有時候就聽他回來唱一些字母歌,也見她從學校帶回來一張掛圖那麼大的紙,前面是字母,後面是對應的單詞。
  • Unity3D開發實踐:動作遊戲《君臨都市》案例剖析
    文/周尚宣本文選自機械工業出版社出版的《Unity3D動作遊戲開發》一書的9.1節,略有改動。經出版社授權刊登於此。君臨都市是一款PS2末期推出的動作遊戲,它沿襲了格鬥遊戲嚴謹的判定並以拳腳格鬥作為其主要戰鬥模式。
  • 帕斯卡契約維奧拉藍色子彈和紅色子彈區別是什麼 維奧拉特殊子彈介紹
    帕斯卡契約維奧拉藍色子彈和紅色子彈區別是什麼 維奧拉特殊子彈介紹時間:2020-06-02 19:02   來源:川北在線綜合   責任編輯:毛青青 川北在線核心提示:原標題:帕斯卡契約維奧拉藍色子彈和紅色子彈區別是什麼 維奧拉特殊子彈介紹 帕斯卡契約維奧拉藍色子彈和紅色子彈區別是什麼?
  • 絕地求生:5.56口徑子彈,那把槍才能更有效的打出
    在絕地求生裡面最常見的步槍型號子彈是5.56型號的子彈,雖然它沒有7.62型號子彈威力上的優勢,但是在穩定性這方面,甩出7.62一條街,很多人因為他的穩定性,放棄了大威力的AKM,5.56可以用很多槍把他打出,雖然它們使用的子彈型號一樣,但是性能上卻有著天大的差別,面對這麼多5.56
  • 《赤核》新手怎麼玩 新手入門操作教學指南
    導 讀 赤核是一款非常好玩的單機考驗反應力和物理學的遊戲,這次小編就帶來了赤核這款遊戲的入門基礎攻略,希望對大家有用。
  • 如果將子彈發射藥換上煙花爆竹用的黑火藥,子彈還能超音速嗎?
    用黑火藥製作的發射藥能夠作用給子彈的能量比硝化棉火藥要小的多,因此如果這麼一倒騰,子彈初速降低,隨之而來的就是射程變短,遠距離存能不足,最後殺傷性也降低了。(子彈內部都是固化顆粒狀的硝化棉發射藥)黑火藥之所以作用給子彈的能量低,其關鍵因素並不是許多人提到的爆速,爆速指的是爆炸所產生的轟爆波在炸藥中傳播的速度,但是很不幸的是爆轟波卻不能推動子彈前進。這就好比飛機超音速飛行時產生的音爆波可以把你家玻璃震碎,但是它卻不能把你震飛是一個道理。
  • 手拿子彈敲底火,子彈能不能發射?威力夠不夠打死人?
    掛了顆子彈就要登機 子彈作為戰場上最大的消耗品,通常由彈頭、發射火藥、彈殼及底火四部分組成,這東西從十九世紀設計出來到現在結構上基本都沒有太大的變化
  • 巧用Unity 2D功能:只需六步開發簡單的2D UFO遊戲
    無論我們現在可以選擇多少種類繁多的,擁有逼真畫面感的遊戲,2D遊戲始終會在玩家們的心中佔據一席之地,而對於想邁入開發者行列的同學們來說,先嘗試做一款2D遊戲無疑是合適的起點。Unity中的2D功能讓開發此類遊戲更加的便捷,這篇教程將教大家使用Unity 2D功能製作一個非常簡單的UFO遊戲,整個過程只需要6個步驟,適合Unity初學者以及對Unity的2D功能不甚熟悉的開發者們,希望Unity能讓你初嘗遊戲開發的樂趣,為以後的開發之路奠定基礎,你準備好完成這款簡單的2D遊戲了嗎?
  • Unity3D遊戲語音功能如何實現
    Unity3D是美國Unity Technologies公司開發的一個全面整合的專業遊戲引擎,像我們日常所熟知的《王者榮耀》、《絕地求生》等遊戲都是應用它來開發的,它可以廣泛應用於手遊、網遊、單機以及新的VR遊戲等開發領域,那它的遊戲語音功能是如何實現的?
  • Unity遊戲開發:手把手教你0基礎入門C 遊戲編程
    零基礎入門C#遊戲編程C#是微軟推出的面向對象的計算機語言,依靠.Net Framwork的龐大類庫支持可以方便地用於Windows、Web和遊戲開發。C#語法和C語言、Java以及Javascript很接近,易於閱讀和理解,它的開發和調試工具,適合作為編程初學者的入門語言。
  • 《赤核》:來感受下子彈時間,你會愛上這款遊戲
    這裡給大家說明一下,小飛沒有給任何手遊代言,只是告訴大家對於這款遊戲自己的見解,有好的方面,也有壞的方面。首先,對於《赤核》這款遊戲,玩法,畫面,體感兩個字:驚豔。《赤核》是一款很簡單的單指操作的遊戲,在遊戲中,玩家操控一個小球躲避各種子彈,利用彈射來消滅敵人。
  • 智能子彈已研發成功,擁有精確制導能力,準確度高於普通子彈50倍
    據新加坡聯合早報報導,美國國防高級研究計劃局發布的消息稱,他們的「高精度任務彈藥」項目,即智能子彈已經完成了首次實戰測試,這種子彈能夠在空中飛行過程中自行調整方向,繞開障礙物擊中目標,測試表明,它的準確度的高於普通子彈的50倍。
  • 【Ardunio】開發入門教程【一】簡介+數據類型+開發工具
    6、應用方面,利用Arduino,突破以往只能使用滑鼠、鍵盤、CCD等輸入的裝置的互動內容,可以更簡單地達成單人或多人遊戲互動。 Arduino官方網站(英文):www.Arduino.cc【Ardunio】開發入門教程【二】數據類型Ardunio數據類型boolean布爾char字符byte字節int