unity报错warning CS0618: 'Object.FindObjectOfType()' is obsolete: 'Object.FindObjectOfType has been deprecated

Assets\SampleResources\Scripts\UnityMainThreadDispatcher.cs(34,25): warning CS0618: 'Object.FindObjectOfType<T>()' is obsolete: 'Object.FindObjectOfType has been deprecated. Use Object.FindFirstObjectByType instead or if finding any instance is acceptable the faster Object.FindAnyObjectByType'

导致该问题的原因:unity版本更新

这个警告 ​CS0618​ 表明你代码中使用的 Object.FindObjectOfType<T>()方法已经被 Unity 标记为过时(Obsolete)​。自 Unity 2023.1 版本起,此方法以及 FindObjectsOfType开始被弃用,并计划在未来的版本中移除。而Unity 官方推荐使用新的方法来替代,主要原因在于性能优化。

旧的 FindObjectOfType方法在返回结果前会默认按物体的 InstanceID 进行排序,而这个排序操作消耗了该方法绝大部分的执行时间(在一些测试中甚至超过90%),但在大多数情况下这种排序并非必要。

vuforia+hololens2

Hololens2+Unity6+MRTK3+Vuforia11 实现图像识别的教程1(开发环境的准备)

这几天研究了Vuforia,从一头雾水到搞明白如何开发基于Vuforia的hololens2图像识别AR程序,还是踩了很多坑的。 而且我发现发现他们官网的教程一塌糊涂,小白完全没搞明白,干脆自己写教程。首先我们先说一下Hololens2程序开发环境的准备,一个好的开发环境是事半功倍,可以避免各种不同……

使用unity开发的hololens2的程序运行日志UnityPlayer.log在哪里

开发unity程序过程中,可以在unity主程序中很容易的找到log文件,查看问题出在哪里。但是如果是开发好打包发到hololens2里面的文件,例如我使用Microsoft Visual Studio进行调试,UnityPlayer.log如何查看呢?

通过以下步骤可以看到已经发送到hololens2里面的打包程序的UnityPlayer.log日志文件
1.首先在浏览器中输入hololens的IP地址,打开Windows Device Portal

UnityPlayer.log如何查看
UnityPlayer.log如何查看

如何通过USB3线缆连接hololens2调试UNITY项目

通过USB3线缆调试hololens2有许多好处,例如数据传输快、调试稳定、不容易受wifi网络波动的影响等等。
调试的方法也很简单,首先看下面这篇文章,方法相同,其实就是更换一下调试的计算机名称

UNITY开发好的hololens程序如何部署到hololens2上 – 工设里世界

然后将hololens2插入USB3.0标准以上的线缆,不要使用USB2线缆。(USB3.2也可以,3.1也可以,USB4也可以,我用的是usb3.2 20g的C2C线,总之是要高于3.0才行。)

然后以win10为例,先打开控制面板:

点击设备,往下拉,如果hololens2正确连接了设备,那是可以看到这个设备名称的。