Unity 親歷面試題


1  用c# 實現單例

參考: 

https://www.cnblogs.com/Dean27/p/7744452.html

 繼承MonoBehaviour的單體

public class Singleton : MonoBehaviour {
    public static Singleton _Instance;
    public static Singleton Instance
    {
        get
        {
            if(_Instance==null)
            {
                _Instance = FindObjectOfType(typeof(Singleton)) as Singleton;
            }
            return _Instance;
        }
    }
    // Use this for initialization
    void Start () {
        
    }
    
    public void TestResut()
    {
        Debug.Log("hihi  一個最簡單的單例");
    }

}

測試

Singleton.Instance.TestResut()

 

使用泛型抽象類實現的單例

public abstract class NotDestorySingleton<T> : MonoBehaviour  where  T:  NotDestorySingleton <T> {
    protected static T _Instance;
    public static T Instance
    {
        get
        {
            if (_Instance == null)
            {
                GameObject ND = GameObject.Find("ND");
                if(ND == null)
                {
                    ND = new GameObject("ND");
                    ND.AddComponent<T>();
                    DontDestroyOnLoad(ND);
                }
                _Instance=ND.GetComponent<T>();
            }
            return _Instance;
        }
    }
    // Use this for initialization
    void Start () {
        
    }
    
    // Update is called once per frame
    void Update () {
        
    }
}
public class NotDestoryTest :  NotDestorySingleton<NotDestoryTest> {

    // Use this for initialization
    void Start () {
        
    }
    public  void TestResult()
    {
        Debug.Log("這是一個使用泛型抽象類實現的單例");
    }
    // Update is called once per frame
    void Update () {
        
    }
}
NotDestoryTest.Instance.TestResult();

完結撒花

2  一個Cube父物體,下面有一個子物體(cuber). 如何將子物體cube移動到0點, 子物體cube移動到0點時Rotation也置為0

 

思路一 子物體和父物體交換, 使用tranform.localRotaion=Quaternion.identy; transform.localPosition=Vector3.zero; 然后父物體和子物體再交換順序

3 渲染管線的理解

 

 

4 Unity 各個版本的區別

 Unity 2019

 AR/VR方面的更新

 

**AR Foundation

AR Foundation幫助Unity開發者快速開始構建AR項目。你可以在自己的AR體驗選擇要加入的功能,只需構建一次,就能同時部署到支持ARKit和ARCore的設備。

 AR Foundation以資源包的形式在資源包管理器提供,它把ARKit和ARCore的底層API結合到同一個框架中,包含額外功能以幫助開發者應對AR開發的最大挑戰。

**AR Remote(預覽版)

AR Remote允許你在設備和Unity編輯器之間傳遞數據,不必在每次測試功能的時候把項目構建到設備上。

 AR Remote包含Session Recording & Playback會話錄制和回放功能。它可以錄制設備上的會話過程,在編輯器進行回放,以實現高效的應用程序測試過程,並迭代預覽效果。

**手持式AR示例項目

手持式AR示例項目已經發布。該項目的場景、預制件和輔助組件都基於AR Foundation開發,用於展示如何處理平面預覽、對象放置等功能。

 

手持式AR示例項目介紹如何使用輕量級渲染管線LWRP和AR Foundation。它包含所有開發時需要的組件,使開發者可以快速構建和運行自己的AR項目。

 

圖形改進

 

LWRP支持AR和VR

AR Foundation對輕量級渲染管線LWRP的支持以預覽版資源包的形式推出,讓開發者為AR體驗使用LWRP。

 

在新版本和LWRP最新資源包中,開發者可以利用Shader Graph着色器視圖和LWRP的性能優化功能來為Unity支持的所有VR平台構建VR體驗。

 

立體渲染模式回退功能

當目標設備不支持立體實例化時,立體渲染功能會自動回退為單通道渲染。開發者可以安全地使用更高效的Stereo Instancing立體實例化渲染模式,不必擔心特定設備的圖形API是否支持該模式。在此前版本中,立體渲染模式會回退為多通道渲染。

 

立體實例化的后期處理支持

在Unity 2019.1和最新后期處理特效包中,所有對VR可見的后期處理效果都適用於Stereo Instancing立體實例化渲染模式。

 

對Magic Leap的內置支持

構建到Magic Leap One的支持現在已經加入Unity 2019.1,這意味着開發者不必為了Magic Leap開發而使用特定的技術預覽版Unity,只要使用Unity 2019.1就可以了

 

 

5 實現網絡通信

丟包等處理

 

6 整理一下重點項目的框架 設計思路 設計方法

 

 

7 c++ 可以子類可以繼承多個父類, c# 不能同時繼承多個,用什么技術可以達到相同效果

    interface 接口

8  兩個物體 如何才能發生碰撞

    rigibody

9  unity 有哪些性能優化方法

10  對 c# 協同的理解

11  stringBulider 和  StringBuffer,的區別

12  lua , lua和unity 是如何工作的,原理是什么


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM