鼠标管理器作为 ScriptableObject 是否可行?

Is a Mouse Manager as a ScriptableObject viable?

我正在努力思考 ScriptableObjects 及其可能性。我的目标是拥有一个鼠标管理器来跟踪鼠标位置、鼠标悬停的对象以及其他行为。我希望任何想知道的人都能随时阅读这个经理。

我知道我可以制作一个具有 ScriptableObject 变量(如 Vector3)并不断更新的 MonoBehavior 脚本,但这需要我手动将管理器添加到每个场景。然后我需要将每个变量作为参考包含到需要读取它的任何其他资产中。

有更好的方法吗?将管理器作为一个 ScriptableObject,每个属性也是一个 ScriptableObject,并在任何需要访问它的脚本中引用管理器?

来自unity docs

The main use cases for ScriptableObjects are:

  • Saving and storing data during an Editor session
  • Saving data as an Asset in your Project to use at run time

我不认为你想要实现的是可能的,因为像鼠标位置这样的事情在运行时会改变。但是我相信创建一个 MonoBehavior 脚本应该可以正常工作。由于它需要出现在每个场景中,因此您可以使用 prefabsDontDestroyOnLoad.