cathei / AntiScriptableObjectArchitecture

DO NOT USE ScriptableObject Architecture
18 stars 1 forks source link

Number 3 does not make sense #1

Open soraphis opened 2 years ago

soraphis commented 2 years ago

https://github.com/cathei/AntiScriptableObjectArchitecture/blob/11f7e65f406e86f5d4436018728f98c74ec6a5e0/README.md?plain=1#L15-L16

Since ScriptableObjects are anyways a UnityEngine feature, and we're talking about Untiy in general, the editor comes for free. It has basically first party support. Also performance wise: everything hooked up via deserialization is basically free compared to e.g. dependency injection running in Start/Awake/OnEnable.

Visual Scripting binds you to a GUI made for Unity, too. So it has the same "issue".

Also you're mixing maintainability (Reason 4) into this.

cathei commented 2 years ago

The point of reason 3 is that you are unnecessary binding yourself to GUI, which it is hard to find references or mass edit, and has less flexibility. Last statement about visual scripting was empathizing as in “If you are going to be GUI bound anyways, using Visual scripting tool would be better”, not meaning Visual scripting is not bound to GUI.

cathei commented 2 years ago

Although I admit that it can be misinterpreted, so I’ll polish the statement. Thanks for the input.

soraphis commented 2 years ago

The point of reason 3 is that you are unnecessary binding yourself to GUI, which it is hard to find references or mass edit, and has less flexibility.

Why is it hard to find references? Unity has an inbuild functionality to find references in scene, Rider goes even beyond that and shows references to assets inside your code. Also the argument would also apply for any serialized value, but we usually serialize values in the first place because it is MORE flexible. hardcoding every value just to make sure you don't have to check them in the inspector, is definitely less flexible.

cathei commented 2 years ago

Why is it hard to find references? Unity has an inbuild functionality to find references in scene, Rider goes even beyond that and shows references to assets inside your code.

Find references in scene only works for scene object in open scene, not prefabs.

Also the argument would also apply for any serialized value, but we usually serialize values in the first place because it is MORE flexible. hardcoding every value just to make sure you don't have to check them in the inspector, is definitely less flexible.

Though I try to avoid using SerializeField as well, of course I don’t suggest hard coding as alternative. I use spreadsheet whenever possible to do mass edit and fast refactoring.

lplswallow commented 1 year ago

Reason 3. "Not until you have to search and roam to find the correct variable."

They are terrible things, this is the same problem with me. And, here are some comments.

In the ScriptableObject architecture base Project, Did you happen to use the Unity Quick Search? I think It can be helpful. It is a built-in module(Ctrl+K).

It worked in prefab.

image

And my question is the module can be solved its problems? (It helps me. but I feel, it is not a solution.)