override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (game_controller == null) { // Try to grab it from parent component game_controller = animator.GetComponentInParent <CreatureGameController>(); } var creature_renderer = game_controller.creature_renderer; if (custom_frame_range) { creature_renderer.creature_manager.GetAnimation(play_animation_name).start_time = custom_start_frame; creature_renderer.creature_manager.GetAnimation(play_animation_name).end_time = custom_end_frame; } if (!do_blending) { creature_renderer.SetActiveAnimation(play_animation_name); } else { creature_renderer.BlendToAnimation(play_animation_name); } }
override public void OnInspectorGUI() { DrawDefaultInspector(); CreatureGameController cur_controller = (CreatureGameController)target; if (GUILayout.Button("Build Skeleton Objects")) { cur_controller.CreateGameColliders(); } if (GUILayout.Button("Remove Skeleton Objects")) { cur_controller.RemoveGameColliders(); } }
public static void UpdateTime( CreatureManager creature_manager, CreatureGameController game_controller, string active_animation_name, float local_time_scale, float region_offsets_z, bool should_loop, ref float local_time) { if (active_animation_name == null || active_animation_name.Length == 0) { return; } var old_time = creature_manager.getActualRuntime(); float time_delta = (Time.deltaTime * local_time_scale); creature_manager.region_offsets_z = region_offsets_z; creature_manager.should_loop = should_loop; creature_manager.Update(time_delta); local_time = creature_manager.getActualRuntime(); bool reached_anim_end = false; if ((local_time < old_time) && (game_controller != null)) { game_controller.AnimClipFrameResetEvent(); reached_anim_end = true; } if (local_time >= creature_manager.GetAnimation(active_animation_name).end_time) { reached_anim_end = true; } if (reached_anim_end) { game_controller.AnimationReachedEnd(active_animation_name); } }
public void SetGameController(CreatureGameController controller_in) { game_controller = controller_in; }
public static void UpdateTime( CreatureManager creature_manager, CreatureGameController game_controller, CreatureMetaData meta_data, string active_animation_name, float local_time_scale, float region_offsets_z, bool should_loop, ref float local_time) { if (active_animation_name == null || active_animation_name.Length == 0) { return; } bool morph_targets_valid = false; if (game_controller != null) { if ((meta_data != null) && game_controller.morph_targets_active) { morph_targets_valid = meta_data.morph_data.isValid(); } } var old_time = creature_manager.getActualRuntime(); float time_delta = (Time.deltaTime * local_time_scale); creature_manager.region_offsets_z = region_offsets_z; creature_manager.should_loop = should_loop; if (morph_targets_valid) { game_controller.computeMorphTargetsPt(); meta_data.updateMorphStep(creature_manager, time_delta); } else { creature_manager.Update(time_delta); } local_time = creature_manager.getActualRuntime(); bool reached_anim_end = false; if ((local_time < old_time) && (game_controller != null)) { game_controller.AnimClipFrameResetEvent(); reached_anim_end = true; } if (local_time >= creature_manager.GetAnimation(active_animation_name).end_time) { reached_anim_end = true; } if (reached_anim_end && (game_controller != null)) { game_controller.AnimationReachedEnd(active_animation_name); } }