I only mentioned the
Animator.Update() as one of the two things with the highest utilization; ignore that I mentioned it.
Sending the project would be problematic, so can we brainstorm a bit?
I run a pretty efficient development here, avoiding unnecessary checks and high order math, and I'm only using PlayMaker partially, perhaps arguably split evenly between PM and old fashion coding. My FSM's are fairly rudimentary averaging 1 to 2 states, with two being a bit more robust at 5 - 7 states. I have three raycasts, two with higher intervals and one checking against limited colliders. I have one state that is doing several float operators(add) and one multiply. A great many are Get/Set's for position and rotation, several for Get/Set properties from my 'regular' scripts and I have five iTween's (move Update, Rotate To, punch Position/Rotation) and a couple Look At's. Of this loose list I'm not suggesting they are all executing at the same time, haha, just that that is what I'm dealing with. At any give time very few are executing unless I need them to loop, otherwise only when I ask for them to execute.
I understand the above is perhaps a ridiculous paragraph and not terribly helpful, but maybe you can see I'm trying to use PM as efficiently as possible, as I'm already concerned that PM may be a tad heavier than doing all of it with pure code.
Can you give me maybe some educated guesses, with your experience with it, what would cause GC to occur, and what I should try to avoid/look out for. Surely there's some
'good practice guidance' when working with PM? (i.e. what actions would/could cause excess GC?)
If worse comes to worse I'll definitely see how best to send it over, but in the meantime I could be on the look out for cases where I may be causing it and with your help investigate it myself.
Thanks Alex!