Unity面试题(每天五个)

这篇内容涵盖了Unity面试中常见的五个问题:单例模式的概念及优缺点、快速排序的原理及实现、控制台打印规律的探讨、DrawCall在游戏性能中的影响,以及二叉树的先序遍历方法。这些问题涉及到软件设计模式、算法、游戏引擎优化等多个方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.什么是单例模式?

这种设计模式属于创造者模式,为创建对象提供了一种最佳的方式,这种模式设计到一个单一的类,该类负责创建自己的对象,同时保证只有单一的对象。这个类提供了唯一访问者个对象的方法,可以直接访问,不需要实例化。

注意:

1.单例模式只有一个实例

2.单例类必须自己创造一个实例

3.单例类必须给其它对象提供这一个实例

实例   Windows 是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象,所以所有文件的处理必须通过唯一的实例来进行

优点:在内存中只有一个实例,减少了内存的开销。(尤其是在频繁的创建销毁时),避免对资源的多重占用。(文件读写操作)

缺点:没有接口,不能继承,与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化。

2.什么是快速排序,请用代码实现?

快速排序采用的是一种分治的思想(去一个数作为基准数,比它小的数放左边,比它大的数放右边。然后再用递归的思想,分别对左右两边排序,知道左右两边不能再分解为止)

3.

​
using System;
using System.Collections;
using System.Collections.Generic;

Class Quick{

    static void Main(String args[])
    {
        int [] arr = {4,5,1,2,3,9,20,6};
        quickSort(arr,0,arr.length-1);
        foreach(int temp in arr)
        {
            Console.Write(temp+"  ");
        }
    }

    //单元排序
    public static int unitQuickSort(int low, int high,int []arr)
    {