public void UseConfig(ChaserControllerConfig config) { if (config == null) { return; } ChaseDistance = config.chaseDistance; WanderSpeedMultiplier = config.wanderSpeedMultiplier; AggroRange = config.aggroRange; FramesSpentWandering = config.framesSpentWandering; FramesSpentStillAfterWander = config.framesSpentStillAfterWander; WanderingFramesVariance = config.wanderingFramesVariance; WanderingStartingCounter = config.startingCounter; if (config.targettingType == TargettingModule.Technique.ByEntityType) { Entity.EntityType t = config.targetEntityType; _targettingModule.CheckEntityCallback = (callingEntity, entityBeingChecked) => { if (entityBeingChecked.IsDead) { return(false); } if (!Behaviours.CheckIfEntityInSight(callingEntity, entityBeingChecked)) { return(false); } return(entityBeingChecked.Type == t); }; } }
public override void OnInspectorGUI() { base.DrawDefaultInspector(); ChaserControllerConfig config = target as ChaserControllerConfig; if (config.targettingType == TargettingModule.Technique.ByEntityType) { GUILayout.BeginHorizontal(); GUILayout.Label("Target Entity Type"); config.targetEntityType = (Entity.EntityType)EditorGUILayout.EnumPopup(config.targetEntityType); GUILayout.EndHorizontal(); } }