奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌

您現(xiàn)在所在的位置:首頁 >學(xué)習(xí)資源 > 面試題庫 > Unity3D題庫

Unity3D題庫

來源:奇酷教育 發(fā)表于:

1 [易]A和B同時(shí)掛了兩個(gè)腳本,生命周期分別由awake,onenable,start,那么這兩個(gè)物體的執(zhí)行順序是:(A的awake,A的onenable,B的awake

 
1.   [易]A和B同時(shí)掛了兩個(gè)腳本,生命周期分別由awake,onenable,start,那么這兩個(gè)物體的執(zhí)行順序是:

(A的awake,A的onenable,B的awake,B的onenable,A的start,B的start)
 
2.   [易]點(diǎn)乘和叉乘在數(shù)學(xué)上的表現(xiàn)

點(diǎn)乘是一個(gè)float值,結(jié)果越大,兩個(gè)向量越相似,叉乘是一個(gè)vector,兩個(gè)向量的叉乘分別垂直于這兩個(gè)向量
 
3.   [易]AssetBundle下載到哪一個(gè)文件夾了

沙河目錄的persistdatapath
 
4.   [易]光照模型Lambert的內(nèi)部計(jì)算

Diffuse = I  * dot(L,N)
 
5.   [易]使用單例的好處

通過單例模式可以保證系統(tǒng)中一個(gè)類只有一個(gè)實(shí)例而且該實(shí)例易于外界訪問,從而方便對實(shí)例個(gè)數(shù)的控制并節(jié)約系統(tǒng)資源。單例模式會(huì)阻止其他對象實(shí)例化其自己的單例對象的副本,從而確保所有對象都訪問唯一實(shí)例。
 
6.   [易]C#中的字典怎么實(shí)現(xiàn),里邊的哈希表是怎么碰撞的,字典的時(shí)間復(fù)雜度

Dictionary(字典)是使用 hash表來實(shí)現(xiàn)key和value之間的映射和存儲(chǔ)的。
Dictionary使用的解決沖突方法是拉鏈法,又稱鏈地址法。
字典的時(shí)間復(fù)雜度是O(1)
 
7.   [易]堆和棧介紹一下

a)棧是編譯期間就分配好的內(nèi)存空間,因此你的代碼中必須就棧的大小有明確的定義;堆是程序運(yùn)行期間動(dòng)態(tài)分配的內(nèi)存空間,你可以根據(jù)程序的運(yùn)行情況確定要分配的堆內(nèi)存的大小
b)存放在棧中時(shí)要管存儲(chǔ)順序,保持著先進(jìn)后出的原則,他是一片連續(xù)的內(nèi)存域,有系統(tǒng)自動(dòng)分配和維護(hù)。而堆是無序的,他是一片不連續(xù)的內(nèi)存域,有用戶自己來控制和釋放,如果用戶自己不釋放的話,當(dāng)內(nèi)存達(dá)到一定的特定值時(shí),通過垃圾回收器(GC)來回收。
棧中保存了代碼的執(zhí)行步驟,先進(jìn)先出,每次使用要從棧頂取走,使用后立即回收空間,棧內(nèi)存不需要管理,不收GC管理
堆存放了各種對象的信息,不會(huì)在使用結(jié)束后被立刻回收,堆內(nèi)存需要GC管理
 
8.   [易]有手動(dòng)寫過gc嗎,說一下gc是怎么調(diào)用的

沒有,根據(jù)上次調(diào)用時(shí)處理的內(nèi)存占用決定
 
9.   [易]使用對象池的壞處

占用內(nèi)存
 
10.  [易]說一下項(xiàng)目中的UI優(yōu)化,批處理有哪兩種,動(dòng)態(tài)和靜態(tài)分別怎么實(shí)現(xiàn)

精靈打包和圖集,UI布局進(jìn)行動(dòng)靜分離,將動(dòng)態(tài)變化中的UI組件單獨(dú)分配到一個(gè)Canvas中
 
 
11.  [易]手寫冒泡

        static void Sort(int[] arr)
        {
            for (int i = 0; i < arr.Length-1; i++)
            {
                for (int j = 0; j < arr.Length-1-i; j++)
                {
                    if (arr[j]>arr[j+1])
                    {
                        int temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
            }
        }
 
 
12.  [易]使用熟悉的一種排序算法,編寫代碼實(shí)現(xiàn)方法,Sort(int[])對一個(gè)一維數(shù)組進(jìn)行排序

        static void Sort(int[] arr)
        {
            for (int i = 0; i < arr.Length-1; i++)
            {
                for (int j = 0; j < arr.Length-1-i; j++)
                {
                    if (arr[j]>arr[j+1])
                    {
                        int temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
            }
        }
 
 
13.  [易]編寫一個(gè)函數(shù),當(dāng)已知一個(gè)三角形三邊長a,b,c,求其對應(yīng)的三個(gè)夾角

利用余弦定理
cosA=(b^2+c^2-a^2)/2bc
角A = Math.Acos(cosA)*180/Math.PI
cosB=(c^2+a^2-b^2)/2ca
角B = Math.Acos(cosB)*180/Math.PI
     cosC=(a^2+b^2-c^2)/2ab
角C = Math.Acos(cosC)*180/Math.PI
 
 
14.  [易]編寫一個(gè)函數(shù),輸入指定長度,輸出包含數(shù)字,大寫字母,小寫字母的隨機(jī)字符串(字符串包含的內(nèi)容可選,即可以選擇是否包含數(shù)字,大寫字母,小寫字母,且可以選擇內(nèi)容是否可以重復(fù))

        //隨機(jī)產(chǎn)生一個(gè)范圍內(nèi)的字符
        static char GetChar(char start,char end)
        {
            Random random = new Random();
            return (char)random.Next(start,end);
        }
        ///
        /// 隨機(jī)插入集合列表中
        ///

        ///
        ///
        ///
        ///
        static void Insert(List list,int index,char item,bool repeat)
        {
            if (repeat)
            {
                list.Insert(index, item);
            }
            else
            {
                if (!list.Contains( item))
                {
                    list.Insert(index, item);
                }
            }
        }
        ///
        /// 生成目標(biāo)字符串
        ///

        ///字符串長度
        ///是否包含數(shù)字
        ///是否包含大寫字母
        ///是否包含小寫字母
        ///
        ///
        static string Test01(int len, bool isContainNumber, bool isContainUpperLetter, bool IsContainLowerLetter,bool isRepeat)
        {
            List charList = new List();
            Random random = new Random();
            if (isContainNumber)
            {
                charList.Add(GetChar('0', '9'));
            }
            if (isContainUpperLetter)
            {
                Insert(charList, random.Next(0, charList.Count), GetChar('A', 'Z'), isRepeat);
            }
            if (IsContainLowerLetter)
            {
                Insert(charList, random.Next(0, charList.Count), GetChar('a', 'z'), isRepeat);
            }
           
            while (charList.Count< len)
            {
                int index = random.Next(0,charList.Count);
                char tempChar = (char)random.Next('0', 'z');
                if (char.IsNumber(tempChar) == isContainNumber && isContainNumber)
                {
                    Insert(charList, index, tempChar, isRepeat);
                }
                else if (char.IsLower(tempChar) == isContainNumber && isContainNumber)
                {
                    Insert(charList, index, tempChar, isRepeat);
                }
                else if (char.IsUpper(tempChar) == isContainNumber && isContainNumber)
                {
                    Insert(charList, index, tempChar, isRepeat);
                }
            }
            return  new string(charList.ToArray());
        }
 
15.  [易]ref和out的區(qū)別

a)使用ref型參數(shù)時(shí),傳入的參數(shù)必須先被初始化。對out而言,必須在方法中對其完成初始化。
b)使用ref和out時(shí),在方法的參數(shù)和執(zhí)行方法時(shí),都要加Ref或Out關(guān)鍵字。以滿足匹配。
c)out適合用在需要retrun多個(gè)返回值的地方,而ref則用在需要被調(diào)用的方法修改調(diào)用者的引用的時(shí)候。
 
16.  [易]閱讀以下程序,程序輸出的是什么?
public class A{
private int m_a;
public A(int _a){m_a = _a;}
public virtual int GetA(){
    return m_a;
}
public int GetAA(){
    return m_a;
}
}
public class B:A{
private int m_a;
public B(int _a) : base(_a){m_a = _a – 1;}
public override int GetA(){
    return m_a;
}
}
var b = new B(12);var a = b as A;
Console.WriteLine(*GetA = {0},GetA = {1}*,b.GetA(),a,GetA());
 

GetA = 11,GetA = 11
 
17.  [難]游戲背景:有一個(gè)英雄,生活在布滿農(nóng)田,洞穴的世界中,他為了生存不斷地采摘,打獵
世界元素:三種點(diǎn):家(唯一),農(nóng)田(若干),洞穴(若干),數(shù)據(jù)由pointList定義,一個(gè)角色(初始位置在家)
 


 
18.  [易]寫出MonoBehaviour生命周期,系統(tǒng)函數(shù)執(zhí)行順序

Awake--OnEnable--Start--FixedUpdate--Update--LateUpdate--OnGUI--OnDisable---OnDestroy--OnApplication
 
 
19.  [易]Unity3d動(dòng)態(tài)加載資源的方式有哪些,有什么區(qū)別

 1.通過Resources模塊,調(diào)用它的load函數(shù):可以直接load并返回某個(gè)類型的Object,前提是要把這個(gè)資源放在Resource命名的文件夾下,Unity不關(guān)有沒有場景引用,都會(huì)將其全部打入到安裝包中。
2.通過bundle的形式:即將資源打成 asset bundle 放在服務(wù)器或本地磁盤,然后使用WWW模塊get 下來,然后從這個(gè)bundle中l(wèi)oad某個(gè)object。
3.通過AssetDatabase.loadasset :這種方式只在editor范圍內(nèi)有效,游戲運(yùn)行時(shí)沒有這個(gè)函數(shù),它通常是在開發(fā)中調(diào)試用的
 
20.  [易]Unity協(xié)程的用途以及線程的區(qū)別

協(xié)同程序(coroutine)與多線程情況下的線程比較類似:有自己的堆棧,自己的局部變量,有自己的指令指針(IP,instruction pointer),但與其它協(xié)同程序共享全局變量等很多信息。
 
協(xié)程(協(xié)同程序): 同一時(shí)間只能執(zhí)行某個(gè)協(xié)程。開辟多個(gè)協(xié)程開銷不大。協(xié)程適合對某任務(wù)進(jìn)行分時(shí)處理。
線程: 同一時(shí)間可以同時(shí)執(zhí)行多個(gè)線程。開辟多條線程開銷很大。線程適合多任務(wù)同時(shí)處理。
 
1.協(xié)程,即協(xié)作式程序,其思想是,一系列互相依賴的協(xié)程間依次使用CPU,每次只有一個(gè)協(xié)程工作,而其他協(xié)程處于休眠狀態(tài)。協(xié)程實(shí)際上是在一個(gè)線程中,只不過每個(gè)協(xié)程對CUP進(jìn)行分時(shí),協(xié)程可以訪問和使用unity的所有方法和component
2.線程,多線程是阻塞式的,每個(gè)IO都必須開啟一個(gè)新的線程,但是對于多CPU的系統(tǒng)應(yīng)該使用thread,尤其是有大量數(shù)據(jù)運(yùn)算的時(shí)刻,但是IO密集型就不適合;而且thread中不能操作unity的很多方法和component
 
線程和協(xié)同程序的主要不同在于:在多處理器情況下,從概念上來講多線程程序同時(shí)運(yùn)行多個(gè)線程;而協(xié)同程序是通過協(xié)作來完成,在任一指定時(shí)刻只有一個(gè)協(xié)同程序在運(yùn)行,并且這個(gè)正在運(yùn)行的協(xié)同程序只在必要時(shí)才會(huì)被掛起。
 
在主線程運(yùn)行的同時(shí)開啟另一段邏輯處理,來協(xié)助當(dāng)前程序的執(zhí)行,協(xié)程很像多線程,但是不是多線程,Unity的協(xié)程實(shí)在每幀結(jié)束之后去檢測yield的條件是否滿足。
 
21.  [易]寫出Lua中ipairs,pairs的區(qū)別

pairs可以遍歷表中所有的key,并且除了迭代器本身以及遍歷表本身還可以返回nil;
ipairs則不能返回nil,只能返回?cái)?shù)字0,如果遇到nil則退出。它只能遍歷到表中出現(xiàn)的第一個(gè)不是整數(shù)的key
 

主站蜘蛛池模板: 圣才学习网-考研考证学习平台,提供万种考研考证电子书、题库、视频课程等考试资料 | 自动螺旋上料机厂家价格-斗式提升机定制-螺杆绞龙输送机-杰凯上料机 | H型钢切割机,相贯线切割机,数控钻床,数控平面钻,钢结构设备,槽钢切割机,角钢切割机,翻转机,拼焊矫一体机 | 海峰资讯 - 专注装饰公司营销型网站建设和网络营销培训 | 四川成人高考_四川成考报名网| 安规_综合测试仪,电器安全性能综合测试仪,低压母线槽安规综合测试仪-青岛合众电子有限公司 | LED投光灯-工矿灯-led路灯头-工业灯具 - 山东普瑞斯照明科技有限公司 | 胶原检测试剂盒,弹性蛋白检测试剂盒,类克ELISA试剂盒,阿达木单抗ELISA试剂盒-北京群晓科苑生物技术有限公司 | 盘装氧量分析仪-防爆壁挂氧化锆分析仪-安徽吉帆仪表有限公司 | 扬尘监测_扬尘监测系统_带证扬尘监测设备 - 郑州港迪科技有限公司 | 螺杆泵_中成泵业| 谷歌关键词优化-外贸网站优化-Google SEO小语种推广-思亿欧外贸快车 | 动物麻醉机-数显脑立体定位仪-北京易则佳科技有限公司 | 智慧农业|农业物联网|现代农业物联网-托普云农物联网官方网站 | 无锡门窗-系统门窗-阳光房-封阳台-断桥铝门窗厂[窗致美] | 共享雨伞_共享童车_共享轮椅_共享陪护床-共享产品的领先者_有伞科技 | 黄石妇科医院_黄石东方女子医院_黄石东方妇产医院怎么样 | 工控机,嵌入式主板,工业主板,arm主板,图像采集卡,poe网卡,朗锐智科 | 北京网络营销推广_百度SEO搜索引擎优化公司_网站排名优化_谷歌SEO - 北京卓立海创信息技术有限公司 | atcc网站,sigma试剂价格,肿瘤细胞现货,人结肠癌细胞株购买-南京科佰生物 | 氧化锆纤维_1800度高温退火炉_1800度高温烧结炉-南京理工宇龙新材料股份有限公司 | 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | PU树脂_水性聚氨酯树脂_聚氨酯固化剂_聚氨酯树脂厂家_宝景化工 | 舞台木地板厂家_体育运动木地板_室内篮球馆木地板_实木运动地板厂家_欧氏篮球地板推荐 | 成都竞价托管_抖音代运营_网站建设_成都SEM外包-成都智网创联网络科技有限公司 | 北京征地律师,征地拆迁律师,专业拆迁律师,北京拆迁律师,征地纠纷律师,征地诉讼律师,征地拆迁补偿,拆迁律师 - 北京凯诺律师事务所 | 苏州工作服定做-工作服定制-工作服厂家网站-尺品服饰科技(苏州)有限公司 | 天津云仓-天津仓储物流-天津云仓一件代发-顺东云仓 | 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | PVC地板|PVC塑胶地板|PVC地板厂家|地板胶|防静电地板-无锡腾方装饰材料有限公司-咨询热线:4008-798-128 | 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 | Brotu | 关注AI,Web3.0,VR/AR,GPT,元宇宙区块链数字产业 | 捷码低代码平台 - 3D数字孪生_大数据可视化开发平台「免费体验」 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 电磁辐射仪-电磁辐射检测仪-pm2.5检测仪-多功能射线检测仪-上海何亦仪器仪表有限公司 | 手持式浮游菌采样器-全排二级生物安全柜-浙江孚夏医疗科技有限公司 | 电动不锈钢套筒阀-球面偏置气动钟阀-三通换向阀止回阀-永嘉鸿宇阀门有限公司 | 华东师范大学在职研究生招生网_在职研究生招生联展网 | 板框压滤机-隔膜压滤机-厢式压滤机生产厂家-禹州市君工机械设备有限公司 | 细胞染色-流式双标-试剂盒免费代做-上海研谨生物科技有限公司 | 杭州实验室尾气处理_实验台_实验室家具_杭州秋叶实验设备有限公司 |