每日笔试题练习4

一、简单讲述A*寻路算法原理

答:G = 从起点 A 移动到指定方格的移动代价,沿着到达该方格而生成的路径。

H = 从指定的方格移动到终点 B 的估算成本。

F = H+G

1、在A*算法中,大地图会被切分为各个全等正方形,每一个方格存储着三个信息:F、H、G三个值还有记录父类方格的位置信息。确定开始点后就将它加入到一个由方格组成的 openList中。

2、遍历查找openList中的方格的邻近方格,如果那些方格可以行走,也将其加入到openList中,同时计算F、H、G三个值并且将对他们发起搜索的初始方格设置为他们的父类方格,随后把openList中的方格放入closeList中,代表这些方格已经被搜索过,后续不再搜索。

3、在openList中选择F值最小的那一个方格继续执行第二步。

4、直到搜索到了终点或者全部搜索完毕后停止,如果可以达到终点,则从终点开始顺着终点方格的父类方格开始检索,获得所有的父类方格收入一个新的list中,将list倒转,即可获得最终寻路路线。A*

二、在Unity中什么是协同程序?如何启用协同程序?

答:协同程序简称协程,即在主程序运行时同时开启另一段逻辑处理,来协同当前程序的执行。换句话说,开启协同程序就是开启一个线程。与线程类似,每一个应用程序都对应一个进程,每一个进程都有一个主线程,但协程在主线程之中,因而使用了还是单线程,不能理解为多线程,应是主线程的一部分。常用于使用动画时同步代码,时间等待,资源加载,场景切换等等。协程使用yield return来中断程序,相当于把该函数后续代码挂起,但是每一帧都会对yield return的返回值条件进行检测。

在Unity中开启协程可以通过三种方法:
1.StartCoroutine(协程方法名());

2.StartCoroutine(“协程方法对应字符串”);

3.StartCoroutine(协程委托);


三、Unity中各个方法的生命周期

答:Awake ->OnEable-> Start ->  FixedUpdate-> Update  -> LateUpdate ->OnGUI ->Reset -> OnDisable ->OnDestroy

生命周期

四、什么是单例模式?

答:保证整个系统中一个类只有一个对象的实例,实现这种功能的方式就叫单例模式。要求如下:

1. 构造私有:如果要保证一个类不能多次被实例化,那么我肯定要阻止对象被new 出来,所以需要把类的所有构造方法私有化。
2.以静态方法返回实例。因为外界就不能通过new来获得对象,所以我们要通过提供类的方法来让外界获取对象实例。

3.确保对象实例只有一个。只对类进行一次实例化,以后都直接获取第一次实例化的对象。

五、什么是工厂模式?

答:工厂模式(Factory Pattern)是 最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

六、什么是观察者模式?

答:当对象间存在一对多关系时,则使用观察者模式。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。常见应用是各类UI显示中监听管理员中的数值变化来调整UI变化

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值