Introduction

Action Timeline is a Unity package designed to provide action and attribute systems while integrated with the Unity Timeline.

Action System

Attribute System

Timeline Tracks and Interfaces

Demo Scenes

Overview

  1. Action System

    The Action System is responsible for handling the activation, deactivation, and cancellation of actions based on predefined rules and combos. It serves as a central hub for handling various aspects related to player actions and interactions.

  2. Attribute System

    The Attribute System is a framework designed to manage various values associated with entities within a game. These values can represent characteristics such as health, strength, agility, etc. The system provides a structured approach to handle these attributes, allowing for easy modification, tracking, and management throughout the game.

  3. Timeline Tracks and Interfaces

    The timeline part of the package introduces a series of tracks and interfaces for orchestrating the temporal aspects of actions. Various timeline tracks, such as Animation, Damage Zone, etc., handle specific facets of actions. All those tracks communicate with Interfaces that define the common functionality for these timelines. These tracks facilitate precise timing within the Unity Timeline, enhancing the overall control and coordination of events in gameplay. While initially designed for combat-oriented games, the tracks are versatile and applicable to various game types.

  4. Demo Scenes

    There are demo scenes included in the package with information on the purpose of each scene, interactions, and any specific features demonstrated.

  5. Other Components, Codes, and Scripts

    In addition to the core components mentioned above, the package includes various components provided as examples or even basics for your project.

Diagram.drawio.svg

Other Components, Codes, and Scripts

Damaging

The entirety of the damaging revolves around three aspects:

IDamageDealerComponent: It provides an layer mask for all the damageable objects. When implementing it, the function ApplyDamage will have to find something about the target that responds to the damaging. Like a health component on enemies or a breakable component for objects. it can be IDamageReactionComponent and by calling TakeDamage on it, but that is not enforced.

IDamageReceiverComponent: It allows to implement how to respond to damage. The method TakeDamage takes the damage data to do anything including calculation regarding health or armor.