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 是如何工作的,原理是什么

转载于:https://www.cnblogs.com/jiwen/p/11274752.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值