static void CheckMonoBehaviour(TypeDefinition td) { if (td.IsDerivedFrom(WeaverTypes.MonoBehaviourType)) { MonoBehaviourProcessor.Process(td); } }
static void CheckMonoBehaviour(TypeDefinition td) { if (td.IsDerivedFrom <UnityEngine.MonoBehaviour>()) { MonoBehaviourProcessor.Process(td); } }
void CheckMonoBehaviour(TypeDefinition td) { var processor = new MonoBehaviourProcessor(logger); if (td.IsDerivedFrom <UnityEngine.MonoBehaviour>()) { processor.Process(td); } }
// returns 'true' if modified (=if we did anything) bool WeaveNetworkBehavior(TypeDefinition td) { if (!td.IsClass) { return(false); } if (!td.IsDerivedFrom <NetworkBehaviour>()) { if (td.IsDerivedFrom <UnityEngine.MonoBehaviour>()) { MonoBehaviourProcessor.Process(Log, td, ref WeavingFailed); } return(false); } // process this and base classes from parent to child order List <TypeDefinition> behaviourClasses = new List <TypeDefinition>(); TypeDefinition parent = td; while (parent != null) { if (parent.Is <NetworkBehaviour>()) { break; } try { behaviourClasses.Insert(0, parent); parent = parent.BaseType.Resolve(); } catch (AssemblyResolutionException) { // this can happen for plugins. //Console.WriteLine("AssemblyResolutionException: "+ ex.ToString()); break; } } bool modified = false; foreach (TypeDefinition behaviour in behaviourClasses) { modified |= new NetworkBehaviourProcessor(CurrentAssembly, weaverTypes, syncVarAccessLists, writers, readers, Log, behaviour).Process(ref WeavingFailed); } return(modified); }