找回密碼
 注冊帳號

掃一掃,訪問微社區

士郎 用unity制作簡單的太空游戲(1)-簡單飛船控制

8
回復
593
查看
打印 上一主題 下一主題
[ 復制鏈接 ]
排名
1
昨日變化

8038

主題

8596

帖子

3萬

積分

Rank: 16

UID
1231
好友
186
蠻牛幣
12092
威望
30
注冊時間
2013-7-29
在線時間
4108 小時
最后登錄
2019-8-14

活力之星原創精華達人突出貢獻獎財富之證游戲蠻牛QQ群會員蠻牛妹VIP

馬上注冊,結交更多好友,享用更多功能,讓你輕松玩轉社區。

您需要 登錄 才可以下載或查看,沒有帳號?注冊帳號

x
最近沉迷《Dreadnought》,回想起作為十余年EVE老油條的太空生涯,又萌生了做個太空游戲的情懷,所以這一次就講講怎么做個簡單的太空飛船的小游戲好了。


因為不會美術(懶,當然這并不是重點...),所以求助assetstore好了,Free大法好




這里不得不提下CGPitbull這家資源商,發布了很多不錯的科幻載具,雖然不是很喜歡這種風格的涂裝,不過已經是商店里少有的全系列高質量資源了,贊一個。
然后我們把下好的飛船資源丟到unity里,記得搞個天空盒喲:




怎樣,是不是很帥,瞧這質感,口水……
然后來實現飛船的控制,首先看下圖,物體在三維空間里的移動有上下左右前后三個軸向的位移和旋轉:



現實里的飛船控制當然是非常復雜的,作為游戲來說完全仿真肯定是不行的,需要根據游戲玩法進行簡化,根據作者玩過的游戲,有以下幾種操控類型:
固定翼飛機式控制,鼠標控制Pitch和Yaw進行視角旋轉和目標鎖定,鍵盤控制Roll等,也是最為常見的3D飛行射擊控制方式,參考類型有《無人深空》《精英危險》《浴火銀河》等。此種模式的特點在于鼠標同時控制了視角和航向,便于感受飛行追逐射擊的快感,在PC端由于鼠標的特性可以很容易上手,但在移動端控制的時候需要相應的輔助瞄準(也是移動端FPS類特有的問題),由于此類玩家通常熱衷于飛行追逐,所以使用載具大都為戰機等靈活機型。


因麥曼機動,操控時需要鼠標向上拉角度,然后翻滾





飛艇式控制,完全由鍵盤控制移動和旋轉,多用于直升機,飛艇,大型飛船類,參考游戲有《Dreadnought》《Kerbal Space Program》等。有別于第一種模式,完全采用鍵位控制的飛船可以輕易實現在3個軸向上的旋轉和移動,也是最為接近于真實飛船移動的方式,但真實的不一定是最好的,同時控制位移和旋轉對操作要求大大提升,而且很難做出相應的機動,所以一般會對這種模式進行簡化,如《Dreadnought》中,就將WS作為前后移動,AD作為Yaw旋轉,Shift和Space作為上下移動,取消了Pitch和Roll控制,從而在保留的較多的操控感的同時簡化了操作。反觀《Kerbal Space Program》作為硬核航天模擬游戲采用完全真實模擬控制,在操作的時候極為困難,需要經過多次練習才能掌握(對接的坑啊……MJ大法好)




KSP中模擬飛船對接
指令式控制,完全通過點擊相應的指令,飛船自主移動,這種模式就是將飛船操控的感覺完全去除,交給飛船自主姿態控制,極大的簡化了玩家操作難度,適用于MMO類型的太空游戲。比如一切全靠右鍵點菜單的《EVE》,值得一提的是后期EVE加入了鍵位控制,但由于游戲模式本身的問題,操作還不如不操作。


網易你倒是趕緊開服讓我進去截個圖啊!!!





游戲作為一個箱籠,一個沉浸式的交互體驗場景,玩家的操作輸入和游戲的反饋輸出至關重要,對于操控模式的選擇,需要在一開始的時候就根據游戲的核心玩法來決定。此時此景,由于作者君沉迷《Dreadnought》,當然是選擇抄他一波啦……

首先在unity里制作這樣的一個場景,注意一點這里我把飛船模型放到了控制器下的Avatar子對象下,這樣可以在控制器處理位移的時候對飛船進行一些其他的操作。


然后編寫控制腳本:


這里先用最簡單的方式實現基本的效果,通過Rotate和Translate實現了最簡單的操作,UpDown是在Input中添加的軸向操作,參考Horizontal設置,鍵位改為shift和空格鍵就行。avatar部分是為了模擬Roll和Pitch旋轉,提升表現力。效果如下:



可以看到基本的效果已經出來了。當然,此處只是粗略的模擬,還有很多坑等著填,比如飛船操控的阻尼感,現在開起來就像紙片,飛船位移的碰撞處理,引擎的效果,等等,接下來我們一一來填。


首先改用物理的方式來移動,作者一開始為了真實模擬飛船采用了Rigidbody.AddForce的方式來做,好處是可以比較真實的模擬飛船的力,然后就掉坑里了,各種受力點,物理材質,力矩調整,十分的麻煩,嘛……又不是做真實模擬,所以后來直接改Rigidbody.MovePosition好了,加速和減速分別用了兩個值,因為減速度很可能高于加速度,核心代碼如下:





然后將面板參數調整到合適的手感:


這樣就得到了進一步改進的飛船控制,手感已經接近于《Dreadnought》的操控,順帶我還摳了個引擎火焰效果放上去,根據操作進行反饋,下面是最終效果:



簡單的AI控制
由于只要提供三軸的控制,我們可以很容易的實現飛船的AI,這里我簡單寫了個判別邏輯計算輸入的三軸,然后在fixedupdate中調用OnMove方法:

這里是跟隨的效果,還湊合。


以上就是本篇飛船控制的內容,由于篇幅有限,不再對更復雜的飛船控制展開講解,大家可以去玩玩KSP進行親身體驗XD,下一篇講下常見的飛船武器,大艦就要配巨炮,億萬炮塔,億萬榮光!

感謝作者

知乎@楊定鵬

回復

使用道具 舉報

5熟悉之中
840/1000
排名
5292
昨日變化

0

主題

106

帖子

840

積分

Rank: 5Rank: 5

UID
173004
好友
0
蠻牛幣
1286
威望
0
注冊時間
2016-11-17
在線時間
464 小時
最后登錄
2019-8-14
沙發
2019-7-15 11:41:48 只看該作者
很詳細,給個贊!!
回復

使用道具 舉報

7日久生情
2081/5000
排名
4092
昨日變化

0

主題

1361

帖子

2081

積分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
254705
好友
1
蠻牛幣
1895
威望
0
注冊時間
2017-11-16
在線時間
358 小時
最后登錄
2019-8-14
板凳
2019-7-15 14:52:35 只看該作者
6666666666666666666666666666666
回復 支持 反對

使用道具 舉報

7日久生情
2081/5000
排名
4092
昨日變化

0

主題

1361

帖子

2081

積分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
254705
好友
1
蠻牛幣
1895
威望
0
注冊時間
2017-11-16
在線時間
358 小時
最后登錄
2019-8-14
地板
2019-7-16 08:05:57 只看該作者
666666666666666666666666666666666
回復 支持 反對

使用道具 舉報

5熟悉之中
999/1000
排名
3009
昨日變化

5

主題

143

帖子

999

積分

Rank: 5Rank: 5

UID
129262
好友
1
蠻牛幣
1046
威望
0
注冊時間
2015-11-18
在線時間
357 小時
最后登錄
2019-8-13
5#
2019-7-16 10:35:17 只看該作者
66666666666666666666666666666666
回復 支持 反對

使用道具 舉報

0

主題

6

帖子

7

積分

Rank: 1

UID
327281
好友
0
蠻牛幣
0
威望
0
注冊時間
2019-7-16
在線時間
1 小時
最后登錄
2019-7-17
6#
2019-7-17 09:37:18 只看該作者
太厲害了我要賺積分
回復 支持 反對

使用道具 舉報

3偶爾光臨
196/300
排名
15909
昨日變化

0

主題

76

帖子

196

積分

Rank: 3Rank: 3Rank: 3

UID
13824
好友
0
蠻牛幣
0
威望
0
注冊時間
2014-2-7
在線時間
74 小時
最后登錄
2019-7-25
7#
2019-7-25 18:42:14 只看該作者
很詳細,給個贊!!
回復

使用道具 舉報

3偶爾光臨
215/300
排名
11086
昨日變化

1

主題

49

帖子

215

積分

Rank: 3Rank: 3Rank: 3

UID
198371
好友
0
蠻牛幣
279
威望
0
注冊時間
2017-1-3
在線時間
105 小時
最后登錄
2019-8-12
8#
2019-8-2 11:08:50 只看該作者
666666666
回復

使用道具 舉報

0

主題

1

帖子

2

積分

Rank: 1

UID
328570
好友
0
蠻牛幣
3
威望
0
注冊時間
2019-8-2
在線時間
1 小時
最后登錄
2019-8-5
9#
2019-8-2 15:49:22 只看該作者
666666666666666
回復 支持 反對

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 注冊帳號

本版積分規則

捕鱼王怎么进不去 北京pk官方开奖结果 黑龙江时时开奖结果查询 广东时时历史开奖记录查询表 网赌坚持一年每天赢600 新强时时彩三星走势图老时时彩中 赚的十一选五技巧 天橙娱乐 北京pk赛车开奖直播 重庆时时彩官网 老时时彩大小单双技巧 赛车pk10走势分析软件下载 竞彩足球胜平负 apk文件怎么下载 广东时时历史开奖记录查询 有重庆时时彩网址吗? 广东11选5龙虎最多多少把