….
ID will be the depth level of the node from the start state. what I suggest is not meaningful for complex graphs. it is useful for sequential actions. you can assume there is a tutorial. the tutorial has 30 steps(states) and each state connects with a condition that requires a human input. ID will be a sequence number and will be added as a prefix. You can also assume that those IDs are item number in the requirements document. this is a nice to have feature. Don’t accept it as a mandatory feature.
thanks. i will try it 🙂
all are scene objects. none of them is a prefab.
I use the latest asset store version. I use fsm as an asset not a bound version.
I attached what I mean. For sequential actions, you can call it order number. I have 40 steps in an FSM. I set name for actions. I can add prefix “1-” “2-” manually. when I insert a state before 4th state I have to rename all followings state names.
Great! I am looking forward to getting the next update.
for OnEnable, yes. will OnDisable execute before the first action of the next state? subscribe events will be at OnEnable and unsubscribe events will be at OnDisable.
Hey,
No, it is not what I want. currently; when I set transition condition to “check after state finished”, onenable on condition works immediately. I need a function that runs when the state finish and just before condition oncheck executes for the first time. I don’t want to subscribe to events early.
I generally run my tasks in sequence and I set transition condition to “check after state finished”.
onenable and ondisable can cause undesired behaviours. there should be a function that runs just before first checking the condition. and there should be an exit function that runs just after the success case. also, ondisable should call exit function if the condition is active. onenable and ondisable are related directly to the gameobject. you can activate gameobject before using condition. maybe you never use condition buy you can enable condition game object. similarly, you can disable game object lately or you can cache it. so there should be functions related condition.
i found my problem 🙂 i have an any state and it’s condition is always true. so it breaks my fsm.
i will check it with bounded FSM. have you tried it with FSM as Asset?
is it the same for you?
At OnEnable Method i cannot get Blackboard values. when i debug at OnEnable i can see there are variables at GlobalBlackboard. but result belove is null. it cannot evaluate $Global/MyReference at OnEnable.
1 2 3 4 5 6 |
public BBParameter<GameObject> Root; protected override void OnEnable() { root = Root.value; } |
when you set FSM as Asset it does not work for GameObject reference. when i set FSM as Bound it works fine. i think you rechecked it as Bound 🙂
it is great 🙂 i am always sure that there is an easy way to do in NC 🙂