Пример #1
0
    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);
        }
    }
Пример #2
0
    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);
            }
        }
Пример #4
0
 public void SetGameController(CreatureGameController controller_in)
 {
     game_controller = controller_in;
 }
Пример #5
0
        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);
            }
        }