unity 面試題

今天這套筆試題感受作得通常。html

隨後是二對一的技術面試,但涉及的技術細節相對較少,不少其它的是對曾經工做、項目經歷的詢問。面試

而後說今天先到這裏。讓我等通知。數據庫

我還特地問了一下,通知大概要多久,他們說這個得看hr,他們僅僅是給hr傳達他們的信息。安全

當時就認爲差點兒相同掛了、、、多線程

1. 請簡述值類型與引用類型的差異app

答:ide

可參考http://www.cnblogs.com/JimmyZhang/archive/2008/01/31/1059383.html函數

 

2.C#中所有引用類型的基類是什麼字體

答:ui

引用類型的基類是System.Object 值類型的基類是System.ValueType

同一時候,值類型也隱式繼承自System.Object

 

3.請簡述ArrayList和List<Int>的主要差異

答:

ArrayList存在不安全類型‘(ArrayList會把所有插入當中的數據都當作Object來處理)

裝箱拆箱的操做(費時)

 

4.請簡述GC(垃圾回收)產生的緣由,並描寫敘述怎樣避免

:GC回收堆上的內存

避免:1)下降new產生對象的次數

2)使用公用的對象(靜態成員)

3)將String換爲StringBuilder

 

5.請描寫敘述Interface與抽象類之間的不一樣

答:

參考http://www.cnblogs.com/seapub/archive/2012/08/08/2628433.html

6.下列代碼在執行中會產生幾個暫時對象?

            string a = new string("abc");
            a = (a.ToUpper() + "123").Substring(0, 2);    

答:事實上在C#中第一行是會出錯的(Java中卻是可行)。應該這樣初始化:

string b = new string(new char[]{'a','b','c'});

 

7.下列代碼在執行中會發生什麼問題?怎樣避免?

            List<int> ls = new List<int>(new int[] { 1, 2, 3, 4, 5 });
            foreach (int item in ls)
            {
                Console.WriteLine(item * item);
                ls.Remove(item);
            }    

答:會產生執行時錯誤,因爲foreach是僅僅讀的。不能一邊遍歷一邊改動。

8.請簡述keywordSealed用在類聲明和函數聲明時的做用

答:

類聲明時可防止其它類繼承此類。在方法中聲明則可防止派生類重寫此方法。

 

9.請簡述private。public。protected。internal的差異

答:

public:對不論什麼類和成員都公開。無限制訪問

private:僅對該類公開

protected:對該類和其派生類公開

internal:僅僅能在包括該類的程序集中訪問該類

protected internal:protected + internal

 

10.反射的實現原理?

 答:審查元數據並收集關於它的類型信息的能力。

參考http://blog.163.com/xuanmingzhiyou@yeah/blog/static/1424776762011612115124188/

 

11..Net與Mono的關係?

答:Mono官網主頁

Mono is a software platform designed to allow developers to easily create 
cross platform applications. Sponsored by Xamarin, Mono is an open source 
implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime.

 

12.簡述Unity3D支持的做爲腳本的語言的名稱

答:Unity的腳本語言基於Mono的.Net平臺上執行,可以使用.NET庫,這也爲XML、數據庫、正則表達式等問題提供了很是好的解決方式。

Unity裏的腳本都會通過編譯。他們的執行速度也很是快。這三種語言實際上的功能和執行速度是同樣的,差異主要體現在語言特性上。

JavaScript:和網頁中常用的JavaScript不同,它編譯後的執行速度很是快。語法方面也會有很多差異。

C#

Boo:可以看作是Python語言的變種。又糅合了Ruby和C#的特性。它是靜態類型語言

 

13.Unity3D是否支持寫成多線程程序?假設支持的話需要注意什麼?

答:參考http://www.unity防禁manual.com/3821.html

 僅能從主線程中訪問Unity3D的組件,對象和Unity3D系統調用

 

14.Unity3D的協程和C#線程之間的差異是什麼?

答:http://blog.csdn.net/kongbu0622/article/details/8775037

多線程程序同一時候執行多個線程 ,而在任一指定時刻僅僅有一個協程在執行。並且這個正在執行的協同程序僅僅在必要時才被掛起。

除主線程以外的線程沒法訪問Unity3D的對象、組件、方法。

 

15.U3D中用於記錄節點空間幾何信息的組件名稱,及其父類名稱

答:Transform 父類是 Component

 

16.簡述四元數的做用。四元數對歐拉角的長處?

答:四元數用於表示旋轉

相對歐拉角的長處:

1)能進行增量旋轉

2)避免萬向鎖

3)給定方位的表達方式有兩種,互爲負(歐拉角有無數種表達方式)


17.向量的點乘、叉乘以及歸一化的意義?

1)點乘描寫敘述了兩個向量的類似程度,結果越大兩向量越類似。還可表示投影

2)叉乘獲得的向量垂直於原來的兩個向量

3)標準化向量:用在僅僅關係方向,不關心大小的時候

 

18.矩陣相乘的意義及注意點

用於表示線性變換:旋轉、縮放、投影、平移、仿射

注意矩陣的蠕變:偏差的積累

 

19.爲什麼你們都在移動設備上尋求U3D原生GUI的替代方案

不美觀,OnGUI很是耗費時間,使用不方便 

 

20.請簡述怎樣在不一樣分辨率下保持UI的一致性

原生GUI http://unity3d.9ria.com/?p=2587

NGUI http://blog.csdn.net/mfc11/article/details/17681429

 

21.爲何dynamic font在unicode環境下優於static font

Unicode是國際組織制定的可以容納世界上所有文字和符號的字符編碼方案。

使用動態字體時,Unity將不會預先生成一個與所有字體的字符紋理。當需要支持亞洲語言或者較大的字體的時候,若使用正常紋理,則字體的紋理將很大。

 

22.Render的做用?描寫敘述MeshRender和SkinnedMeshRender的關係與不一樣

A renderer is what makes an object appear on the screen。

 

23.簡述SkinnedMesh的實現原理

http://blog.csdn.net/n5/article/details/3105872

 

24.在場景中放置多個Camera並同一時候處於活動狀態會發生什麼

答:

遊戲界面可以看到很是多攝像機的混合

 

25.Prefab的做用?怎樣在移動環境的設備下恰當地使用它?

答:

Prefab在實例化的時候用到,主要用於經常會用到的物體,屬性方便改動

http://www.cnblogs.com/88999660/archive/2013/03/15/2961663.html 

 

26.怎樣銷燬一個UnityEngine.Object及其子類

答:

Destory

 

27.爲何Unity3D中會發生在組件上出現數據丟失的狀況?

答:

組件上綁定的對象被刪除了

 

28.怎樣安全的在不一樣project間安全地遷移asset數據?三種

答:

將Assets文件夾和Library文件夾一塊兒遷移

導出包

用unity自帶的assets Server功能

 

29.MeshCollider和其它Collider的一個主要不一樣點?

答:Convex?

 

30.當一個細小的快速物體撞向還有一個較大的物體時,會出現什麼狀況?怎樣避免?

穿透(碰撞檢測失敗)

http://forum.unity3d.com/threads/3353-collision-detection-at-high-speed


31.OnEnable、Awake、Start執行時的發生順序?哪些可能在同一個對象週期中重複的發生?

Awake -》OnEnable-》Start

OnEnable在同一週期中可以重複地發生

http://answers.unity3d.com/questions/217941/onenable-awake-start-order.html

 

32.請簡述OnBecameVisible及OnBecameInvisible的發生時機,以及這一對回調函數的意義?

當物體是否可見切換之時。

可以用於僅僅需要在物體可見時才進行的計算。

 

33.Unity3D怎樣獲知場景中需要載入的數據?

題目是獲取的意思?

Resource.Load

AssetBundle

 

34.MeshRender中material和sharedmaterial的差異?

改動sharedMaterial將改變所有物體使用這個材質的外觀。並且也改變儲存在project裏的材質設置。

不推薦改動由sharedMaterial返回的材質。假設你想改動渲染器的材質。使用material替代。

相關文章
相關標籤/搜索