前言
如题的需求,其实可以通过使用UI替代场景中的图标来实现,不过这样UI的处理稍微麻烦,而且需要在图标上添加粒子特效使用SpriteRender更方便快捷。这里就根据相机离图标的位置来计算图标的缩放大小即可。这样基本保持了图标的大小,不会出现远小近大。从而避免了相机离得远图标点不中或者不好点击的问题。
默认效果:
动态缩放效果:
实现
这个功能的实现还有个功能,就是让图标永远面向相机,这个可以使用LookAT或者使用如下代码:
transform.forward = Camera.main.transform.forward;
transform.rotation = Camera.main.transform.rotation;
这个脚本需要主相机,不然会报错。
接下来就是编写缩放的脚本了(ScaleByCamDistance):
using System.Collections;
using System.Collections