C#基礎
Q:問類和結構區別
Q:接口和抽象函數異同
Q:問數組,ArrayList和List;問數組和字典 很細
Q:string 和 StringBuilder異同
Q:什麼是反射;C#如何調用外部動態鏈接庫
Q:問棧堆區別
Q:虛函數 構造函數 析構函數
A:https://www.cnblogs.com/ysq0908/p/6407848.html
Q:ref out
Q:GC是什麼?具體機制是怎樣?它是怎麼知道哪些對象可以被回收的?
A:https://www.jianshu.com/p/53439af1eb00
Q:委託 事件是委託嗎
A:https://www.cnblogs.com/akwwl/p/3232679.html
Q:UI間傳參(事件傳參)
A:1.通過object類型來傳遞參數,這種方案最差,因爲拓展性比較差
2.通過hashtable(keyvaluepair)傳遞參數,相比object類型更加自由可控,實現一種動態結構體的概念
3.最好的方案是通過封裝成EventContext來傳遞參數 --- EventDispatcher sender(發起對象)object initiator(初始對象) InputEvent inputEvent(傳入事件) string type(事件類型名)object data(數據)
Q:D3D渲染流程;什麼是粒子 如何做的
數據結構和算法
Q:排序有哪些 複雜程度 以及算法是否穩定?
A:https://www.cnblogs.com/hokky/p/8529042.html
Q:射線和四邊形碰撞是否相交
Q:兩個四邊形是否相交(給四邊形中間點和長寬)
A:https://blog.csdn.net/yahohi/article/details/7927158
Q:問運動,給一段路線,初速度0,然後勻速運動,最後減速至停止,求加速度路程時間;勻速路程時間;和減速路程時間;
A: 路程:s=at^2 / 2 加速度: a=(v-v0)/t
Q:問如果碰撞的運動判斷超過了碰撞體
A:射線長度和運動下個位置掛鉤(我沒回答好)
Q:傷害顯示怎麼一次drawcall
A:mesh或者Texture2D
Q:任意一條曲線,如何知道兩點間曲線長度
Q:List和Dictionary,增加,插入,刪除的時間複雜度
Q:設計一張哈希表,如何解決哈希衝突
Unity基礎
Q:問看到物體前後的所有影響
A:camera depth → sorting layer → order in layer → shader渲染列隊(所有數值越大越後渲染,顯示越靠前)
Q:問協程 IEnumerator() 一幀後執行 跳出 停止 與C#線程區別
Q:貼圖的壓縮格式
Q:unity是否嘗試物理彈開的影響;如何設定是否碰撞
Q:ui canvas是啥 三種模式區別
Q:AssetBundle打包函數,unload方法中boolean參數有什麼用,壓縮格式
Q:Update和FixedUpdate的區別 timescale和dataltime的使用和對前者的影響
Q:渲染流程,
Q:簡述Assetbundle的加載過程與注意事項(求嘉神解答)
Q:什麼是DrawCall,UGUI有哪些降低DrawCall的技巧
Q:自定義模型的實現原理 並說明如何在unity中自定義模型
Q:Unity shader中用什麼語言;Lighting Culling ZTest Zwrite Fog AlphaTest Blend Offset ColorMask分別代表什麼
Q:揹包界面如何實現?
A:主要問多項Item時scrollView如何處理,可以舉例說明,比如列表最多可顯示5項,那麼只創建6項,通過滑動時循環將第一項 變爲最後一項實現性能優化
拓展:需求“可以定位到任意項時,如何處理?”“這些項可能有任意高度時如何處理?”
根據item數量計算表高度,並定位到對應高度(在此基礎上詳細回答)
Q:貼圖的壓縮格式
Q:NGUI和UGUI中,兩個UI間夾着一個粒子特效是怎麼實現的?
A:NGUI:設置shader的renderQueue UGUI:設置sortingOrder
Lua
Q:變量有哪些?
A:nil bool string number function thread table
Q:閉包
Q:pairs和ipair區別 for i=1,n do和for ipairs區別?
Q:table是怎麼實現既有List特性又有Dictionary特性的?
方案
Q:Spine2d內部結構是怎樣的?如何實現換裝?
A:https://mp.csdn.net/postedit/82697910
Q:傷害彈出數字的製作
A:1.sprite(會多對象) 2.UI(如果使用Texture2d get/setPixel會增加計算 但是減少對象) 3.mesh 設置UV(單對象,計算消耗很低)
Q:網絡同步方案(詳細)
A:狀態同步和狀態同步,同步驗證問題
Q:傷害計算公式
Q:寫一個生產者與消費者的僞代碼
Q:寫一個C#打亂撲克牌(54張)的算法,寫一個鬥地主的計算各種牌的方法(3帶2 連對 飛機..)
Q:問子彈時間(覺得方案2不好 )
A: https://mp.csdn.net/postedit/83022461
Q:問AR塗塗樂 UVMapping技術(回答後覺得簡單)
Q: 問Kinect變身和Animator混合(回答後覺得簡單)
性能優化
Q:DrawCall
Q:使用對象池時,cpu cache的影響
Q:戰爭迷霧系統是怎麼實現的?怎麼實現對他的優化?(c#邏輯和shader渲染兩個方面)
Q:Mono中Foreach的缺點?怎麼解決
A:Mono中使用Foreach會產生40B的GC,具體原因是翻譯成IL代碼時,GetEnumerator()返回值類型在使用using語句時進行了裝 箱操作
在處理Array或者List類型數據時可以使用For
在處理Dictionary時可以用迭代器解決:
var enumerator = m_Dictionary.GetEnumerator();
while (enumerator.MoveNext())
{
var element = enumerator.Current;
element.Value.UpdateComponent(deltaTime);
}
網絡連接
Q:TCP滑動窗口
Q:TCP和UDP的區別
Q:網絡信息的信息池
Q:UDP如何保證消息送達?在網絡較差時如何處理
Q:Protobuf的結構是怎樣的?怎麼實現高壓縮率(TODO:表述有問題,待修正)
A:Protobuf結構是Tag-Length-Value
框架和設計模式
Q:設計模式有哪些? 寫出工廠模式、單例模式 問ai和工廠 覺得不是工廠(工廠模式三種瞭解一下)
Q:ECS框架,優點
A:entity component system ①解耦 ②內存cache
Q:MVC框架
A:Model View Controller 消息傳遞,控制data
Q:ToLua框架,如何使用
Q:ET框架
Q:framework
安卓
Q:SDK如何使用
Q:生命週期
A:
Q:回調方法描述
IOS
Q:生命週期
--------------------------------------------
說一下面試,大公司基本上都是問簡歷上的內容拓展問方案和基礎,然後會問一下C#基礎、unity基礎和你負責相關的部分。其他中小公司一般會先給筆試甚至機試。
比較好的面試官有一步步的引導解題和給予一定反饋。
然後最近在讀《深入C#》200+頁了 《C#高級編程》100+page 《程序員的自我修養》100+page,感覺深入C#挺不錯的