A. 飛機用陀螺儀額定漂移率是否大於0.5度/小時
MPU6050,是目前用的最廣范的,性能較好的
好評哦,親
MPU-6000(6050)的角速度全格感測范圍為±250、±500、±1000與±2000°/sec (dps),可准確追蹤快速與慢速動作,並且,用戶可程式控制的加速器全格感測范圍為±2g、±4g±8g與±16g。產品傳輸可透過最高至400kHz的IC或最高達20MHz的SPI(MPU-6050沒有SPI)。MPU-6000可在不同電壓下工作,VDD供電電壓介為2.5V±5%、3.0V±5%或3.3V±5%,邏輯介面VVDIO供電為1.8V± 5%(MPU6000僅用VDD)。MPU-6000的包裝尺寸4x4x0.9mm(QFN),在業界是革命性的尺寸。其他的特徵包含內建的溫度感測器、包含在運作環境中僅有±1%變動的振盪器。
應用
運動感測游戲 現實增強 電子穩像 (EIS: Electronic Image Stabilization) 光學穩像(OIS: Optical Image Stabilization) 行人導航器 「零觸控」手勢用戶介面 姿勢快捷方式 認證
市場
智能型手機 平板裝置設備 手持型游戲產品 游戲機 3D遙控器 可攜式導航設備
特徵
以數字輸出6軸或9軸的旋轉矩陣、四元數(quaternion)、歐拉角格式(Euler Angle forma)的融合演算數據。 具有131 LSBs/°/sec 敏感度與全格感測范圍為±250、±500、±1000與±2000°/sec 的3軸角速度感測器(陀螺儀)。 可程式控制,且程式控制范圍為±2g、±4g、±8g和±16g的3軸加速器。 移除加速器與陀螺儀軸間敏感度,降低設定給予的影響與感測器的飄移。 數字運動處理(DMP: Digital Motion Processing)引擎可減少復雜的融合演算數據、感測器同步化、姿勢感應等的負荷。 運動處理資料庫支持android、Linux與Windows 內建之運作時間偏差與磁力感測器校正演算技術,免除了客戶須另外進行校正的需求。 以數位輸出的溫度感測器 以數位輸入的同步引腳(Sync pin)支援視頻電子影相穩定技術與GPS 可程式控制的中斷(interrupt)支援姿勢識別、搖攝、畫面放大縮小、滾動、快速下降中斷、high-G中斷、零動作感應、觸擊感應、搖動感應功能。 VDD供電電壓為2.5V±5%、3.0V±5%、3.3V±5%;VDDIO為1.8V± 5% 陀螺儀運作電流:5mA,陀螺儀待命電流:5µA;加速器運作電流:350µA,加速器省電模式電流: 20µA@10Hz 高達400kHz快速模式的I2C,或最高至20MHz的SPI串列主機介面(serial host interface) 內建頻率產生器在所有溫度范圍(full temperature range)僅有±1%頻率變化。 使用者親自測試 10,000 g 碰撞容忍度 為可攜式產品量身訂作的最小最薄包裝 (4x4x0.9mm QFN) 符合RoHS及環境標准
B. 2022最新Unity應屆生面試題,附答案+面試手冊!
完整版手冊詳情介紹: 2022最新Unity面試題,推薦這份3萬字面試手冊!
**第一部分:判斷題**
1. C#不支持繼承多個類。 ×
2. 修改Renderer的sharedMaterial,所有使用這個材質球的物體都會被改變,並且也改變儲存在工程里的材質設置。 √
3. Unity中可以創建子線程,並在子線程中直接修改UI對象。 ×
4. Unity不支持在協程中嵌套調用協程。 ×
5. C#不同命名空間中可以存在相同類名。 √
6. Unity會自動為MonoBehaviour子類的public變數做序列化。 √
7. 每個枚舉成員均具有相關聯的常數值,可以設置為負數常數。 √
8. 只帶有 get 訪問器的屬性稱為只讀屬性,無法對只讀屬性賦值。 √
9. protected成員只能被本類內部訪問,無法被子類直接訪問。 ×
10. 父物體發生Transform變化的時候,子物體跟隨一起變化,但是子物體發生變化的時候,父物體不動。 √
**第二部分:問答題**
1. **C#中的委託是什麼?**
- **委託定義**:delegate int MyDelegate(int value); //聲明委託類型
- **類型安全**:C#的委託是類型安全的,清晰定義返回類型和參數類型,類似函數指針但更安全。
- **應用**:用於事件和回調方法,提供類型安全的函數指針概念,便於傳遞方法引用。
2. **值類型與引用類型的區別?**
- 值類型:存儲數據本身。
- 引用類型:存儲數據的引用地址。
3. **介面Interface與抽象類abstract class的區別?**
- 抽象類:可包含實例變數和方法,包含未實現的方法。
- 介面:只包含抽象方法和屬性,無實例變數。
4. **如何弱化代碼依賴關系?**
- 使用依賴注入、介面和抽象類來分離組件間的依賴。
5. **Unity實現跨平台的原理**
- 使用C#語言和Mono框架實現跨平台編譯。
- 利用平台特定的API和封裝,實現不同平台的兼容性。
6. **四元數的作用與歐拉角的聯系**
- **四元數**:用於表示3D旋轉,減少旋轉計算的奇異點問題。
- **歐拉角**:描述物體繞三個軸的旋轉角度,四元數對歐拉角的優點在於避免了旋轉順序的混淆和奇異點問題。
7. **Unity腳本生命周期與執行順序**
- **執行順序**:OnEnable、Awake、Start、Update、LateUpdate、FixedUpdate、OnDisable等。
- **生命周期**:對象創建時調用Awake,開始執行腳本時調用Start,Update用於每幀執行,LateUpdate用於Update之後,FixedUpdate用於固定時間間隔執行。
8. **Unity的協程理解**
- 協程允許腳本在執行時暫停和恢復,用於實現更復雜的邏輯控制。
- 使用yield關鍵字實現協程的暫停和恢復。
**第三部分:場景題**
1. **定位Android包啟動閃退問題**
- 使用Log日誌記錄關鍵步驟,檢查崩潰堆棧信息,使用ADB工具分析內存使用情況。
2. **開發點擊屏幕開炮發射子彈功能**
- 使用Unity的Input系統檢測屏幕觸摸事件,通過Rigidbody組件模擬物理碰撞和運動。
整理了一份《Unity面試手冊》,目前大約3萬字左右,旨在幫助面試者准備Unity面試,減輕負擔並節省時間。手冊包括C#基礎語法、面向對象、集合、異常、泛型、LINQ、委託、多線程、Lua面試題、Unity應屆生面試題、游戲公司真題等知識點,為面試者提供全面的准備材料。
C. 求助,新手急用,怎樣使用Quaternion.Slerp實現多次旋轉
Quaternion.Slerp是插值;
要多次旋轉
transform.rotation = Quaternion.FromToRotation(Vector3 form, Vector3 to) * transform.rotation;
transform.rotation = Quaternion.FromToRotation(Vector3 form, Vector3 to) * transform.rotation;
為什麼要乘transform.rotation,這涉及到四元數的問題,很復雜。你理解Quaternion.FromToRotation是計算出向量form到to旋轉角的動作就好了,最乘就是把這個旋轉動作賦予給transform.rotation
D. 游戲開發都需要會哪些
平台與編程語言選擇
首先,游戲開發的平台就有很多類型:
個人主機平台:Windows、Linux、MacOC;
移動平台:iOS、Android、WindowsPhone、BlackBerryOS、Symbian;
專業主機平台:Xbox、PlayStation、Will等。
如果你想從事移動平台的游戲開發,Android主流JAVA語言,iOS主流Object-C語言,那麼你就要去學習這個平台主流的語言,而在個人主機上主流的游戲開發語言現在包括以後很長時間也還是C++。但是並不是所不同平台的游戲開發,就毫無共通之處,學了這個到了另一個平台就無用了。不是這樣的,編程的世界裡你走得越遠你會發現很多東西的本質都是相似的,例如你如果扎實地理解了C++的基本語法(而不是死記硬背),日後再轉Java語言也不是很難的事情,因為它們本質的面向對象特性還有各種編程語言特性都是相通的。
所以,如果你想走得遠,在學習的時候不能簡單流於表面,對於一樣知識越深入到底層,你就越能看到其它知識與其的異曲同工之處,因此你將比別人更輕松。但是,當然一開始最好盡可能是貼合自己的專屬領域和編程語言,這樣能盡快地在這個領域持有一席之地。無論你選擇哪個平台,游戲開發這個浩大的工程都離不開游戲引擎,所以這里都有二條路線讓你選擇:
只使用游戲引擎;
使用游戲引擎並深入學習游戲引擎原理。
游戲開發需要學什麼?和軟體開發一樣,游戲開發也是需要從編程語言學起的。下面有怎樣學習軟體開發的方法。游戲開發比軟體開發相對難一些,因為游戲開發需要我們熟悉各種游戲開發工具。來看看具體的內容吧!
階段一:學習和計算機溝通的言語——C++語言或其他語言
編寫程序就是和計算機進行溝通,而溝通很常用的途徑就是語言,就像我們平時和別人溝通一樣,只是現在你是和計算機進行溝通,其實你想想和計算機溝通比和別人溝通來得更容易。
計算機語言有很多中,如C/C++,Objc-C,Java,AS3,匯編語言,php,asp等,就像我們平時語言也有多種。當你掌握了這樣的一種語言,那麼你就能和計算機在不同的領域進行溝通。
而C++語言是目前來說較為強大的語言之一,而重要的是現在很多游戲的底層都是用C++語言寫的。而同時你要熟悉一種編程開發工具,編程工具就是你向計算機溝通的一種工具,就像平時我們說話用的嘴巴,開發工具讓我們和計算機的溝通更加方便。
階段二:熟練掌握數據結構及各種常用的演算法_靈活使用語言
單單會語言還不夠的,就像我們平時你不是會說話就能和別人很好的溝通,你要懂得溝通的方式和技巧。數據就是計算機內存放記錄的內容,你可以認為是我們平時說的詞,數據結構就是數據與數據間的關系。
針對程序來說,你對數據理解,定義,操作熟悉,對演算法多樣,高效,那麼程序就會簡潔,運行效率高,這就是為什麼要熟練掌握數據結構和常用演算法的原因。其實演算法就是解決問題的方法,解決一個問題,方法有很多,有些常用的方法是前人經驗得來的,我們就要學習。
階段三:找一個平台,發揮你的語言能力——Win,Android,IOS
目前程序應用的范圍廣,平台很多,就針對游戲程序目前常見的就有Win,Android,IOS等,平台就相當於語言使用的地域,你會普通話在中國很吃香,溝通無難題,但你去到美國,那就有難度了,就是你是普通話專家都郁悶。不同的平台對語言及程序架構的要求不一樣,因此你要挑一個平台時更好的使用你的語言。
階段四:開發游戲Dome_實踐你的技術
如果你前三個階段都過了剩下的就是開發游戲Dome,從游戲的logo開始,菜單,到場景,當主角,到NPC,到主角與NPC的交互,到主角與場景的交互等,一步一步寫,在不斷的開發中積累經驗與程序框架。用得越多越熟練。
1、先學習C/C++
2、之後接觸學習WINDOWSAPI和VC++
3、需要掌握一個3D游戲SDK:DirectxSDK,或者OPENGLSDK
4、美工和建模方面的知識適當了解圍繞以上找相關資料或書,可能需要好幾本。
首先非常感謝在這里能為你解答這個問題,讓我帶領你們一起走進這個問題,現在讓我們一起探討一下。
1.要想成為一個游戲開發人員,就得先成為一個很好的程序開發人員。當你成為一個很好的程序開發人員時,就可以考慮學習游戲開發了。要想成為一個非常好的游戲開發人員,最重要的一點,就是需要對數學非常好。當然,這里指的數學好,不是指加減法好,或者心算好,而是指線性代數,幾何和幾何代數,物理方面的數學等等。如果你對於數學是毫無興趣,或者索然無味的話,就要重新想想自己是否可以改變自己的理想了。如果你的數學不好,還想成為游戲中的人員,呵呵,有一個辦法,就是成為游戲的測試人員,游戲的藝術人員,或者是游戲設計人員,或者游戲的管理人員。
上面知道數學是開發游戲的第一個基本條件了,但還是有很多其它知識需要學習的。下面就來詳細說明一下:
2.程序設計語言:在程序語言方面,不但要精通一兩門語言,還需要了解其它的語言。一般開發游戲都是使用C++或者C,因此精通這門語言是必然的選擇了。由於開發游戲需要不同的語言,比如腳本語言,這樣就需要了解一下動態語言,比如Python等等。
3.數據結構:不管計算機發展到什麼程度,只要是編寫程序,就少不了數據結構。目前,基本上都不再會有自己去創造「車輪」年代了,應去理解和使用STL,或者其它更好的數據結構庫了。精通地使用STL,就基本上解決了數據結構的問題了。
浮點數:在開發游戲里,使用最多的數據類型是什麼呢?顯然就是浮點數。比如3D游戲里的點坐標,就是使用三個浮點數來表示的。浮點數的計算,往往就會有不精確的現像,比如判斷一個數是否等於0,就不能想當然地認為是否等於0了。
4.編程工具:編程工具,就像自己的柴刀,如果沒有柴刀,就砍不到柴的。當然,磨刀不誤砍柴功。因此,一定要對自己的編程工具非常熟悉,比如調試,工程配置,編輯,編譯等等,還有經常出現的編譯錯誤等。如果你還是使用VC6來開發現在的游戲話,建議你趕緊放棄吧。那都是8年前的開發工具了,目前都需要使用VS2005的開發工具了,強大的C++語言特性,強勁的編輯工具,讓你寫代碼,就如流水般流暢。它還能支持編譯x64位的代碼,64位的PC越來越流行了。
5.計算機體系結構:不了解計算機的體系結構,就沒有辦法知道程序的運行環境。很多年前,還是8086的體系的結構,接著,就是80386的保護模式。到目前多核體系結構,對於編寫程序,要求發揮多核CPU的性能,就需要了解怎麼樣合理地分配CPU資源了。或許,你還可以控制那個CPU進行渲染的操作,那個CPU進行網路通迅。如果到四核的CPU,又要需要多少個CPU進行資料庫的查詢工作呢?
6.Windows編程:目前90%的游戲運行環境就是Windows,如果不了解Windows,就無從下手了。比如Windows的消息處理過程,事件響應,還有Windows的網路通迅過程,這些都是需要了解的。還有Windows提供的API,更加要熟練運用了。
7.DirectX:對於每個游戲開發者,都是必備常識。
軟體工程:現在的游戲開發,都不是一個人就可以開發完成的。一定是一個團隊,相互之間的協作,就成為了需要解決的問題。比如每個人寫的一部份的程序庫,是怎麼樣連接在一起,都是軟體工程的問題,怎麼樣安排進度,都是需要使用甘特圖來說明,以及怎麼樣進行測試,也是測試人員配合進行的。現在的游戲都進行入了3D的時代,那麼你從哪裡開始呢,最快的方法,就是下載DXSDK,然後打開一個空的工程,看看DX給你創建了什麼文件,以及這些源程序作什麼用的。接著試著創建一個三角形顯示出來看看,試著改變它的顏色,試著讓它轉動起來,最後創建兩個三角形,計算一下這兩個三角形會不會相交呢?會不會碰撞呢?
在以上的分享關於這個問題的解答都是個人的意見與建議,我希望我分享的這個問題的解答能夠幫助到大家。
在這里同時也希望大家能夠喜歡我的分享,大家如果有更好的關於這個問題的解答,還望分享評論出來共同討論這話題。
我最後在這里,祝大家每天開開心心工作快快樂樂生活,健康生活每一天,家和萬事興,年年發大財,生意興隆,謝謝!
看你要去哪個方向了,策劃、程序、美術,每個方向又有細分。
策劃有劇情策劃,關卡策劃,數值策劃等等。
程序有客戶端編程,伺服器編程,引擎編程,腳本編程,手機游戲開發,網頁游戲。
美術有3d建模,2d美術。
方向不一樣需求不一樣。
較了解程序,就程序倆說吧。
如果要說只為幹活,客戶端你得學windows編程,socket等
伺服器當然就是各種資料庫操作,各種通訊操作。
引擎編程需要了解底層,directx,opengl,3d數學,物理基礎等。
腳本的話就學腳本就夠了。
手機游戲開發分ios、android,對應使用不同引擎需要不同的學習。
網頁游戲前端目前flex流行,js,html也在發展。
以上只是速成。但是真正建議的是,
學好c++,數據結構,socket編程,了解windows編程,學習資料庫編程。
先學3d數學,再學directx,然後試著做個小游戲。
學習設計模式。研究開源引擎。
會是個比較漫長的過程,但是基礎扎實,各種開發都不怕。
可以專挑一條喜歡的道路深入研究,也可以專注游戲邏輯實現。
我也是在學習游戲,個人經歷來說,覺得比較好的一個方案。
1、3D數學,包括矩陣、四元數、空間變換、碰撞檢測等等;
2、C、C++要熟練掌握,對內存、指針這些都要很熟悉;
3、底層的計算機知識、組成原理很重要,最好能會一些匯編;
4、數據結構和演算法,非常重要,基礎都很重要;
5、對游戲的整體認識,包括游戲需要哪幾個模塊,比如渲染、物理、AI、gameplay等等,最好自己不用引擎的情況下寫過一些基礎的引擎、渲染模塊等等;
6、對游戲需要有自己的認識和見解,玩游戲也要學會分析,知道如何分析游戲的優缺點,知道什麼樣的游戲好玩,為什麼好玩,建議多看各種文章和視頻;
7、了解業界的動態,多關注游戲相關的知識,業內的消息、媒體、人脈也非常重要,學習自己分析業界動向和觀點;
8、使用和熟悉學習一下unity這種比較成熟的引擎也很有幫助,可以幫你了解游戲引擎的架構和引擎的動向,但是千萬要鞏固計算機基礎之後再做這些;
9、創新的思維和openmind很重要;
10、好的實習經歷、項目經驗很重要,先進入游戲行業很重要,每個人都要敲門磚。