Unity3D:UFE

m

scripts

ControlsScript.cs

public

class

InputReferences{}

ControlsScript{}

var

public

PossibleStates

currentState

private

AnimatorStateInfo

currentBaseState

MoveSetScript

myMoveSetScript

PhysicsScript

HitBoxesScript

ControlsScript

opControlsScript

???

func

Update(){}

//if crouching

(check)

//control input state down

//physics

//onGround

//current move = null

//state

//!stunned

//!blockstunned

currentState = PossibleStates.Crouch;

//crouching animation currently playing

if (!myMoveSetScript.IsAnimationPlaying(myMoveSetScript.basicMoves.crouching.name)) {}

true

false

//is blocking

myMoveSetScript.PlayBasicMove(myMoveSetScript.basicMoves.crouching);

//not blocking

myMoveSetScript.PlayBasicMove(myMoveSetScript.basicMoves.blockingCrouchingPose);

PhysicsScript.cs

MoveSetScript.cs

var

public

enum

PossibleStates{}

Stand

Crouch

(jump)

(hit)

class

BasicMoveInfo{}

BasicMoves{}

public

BasicMoveInfo

idle = new BasicMoveInfo();

crouching = new BasicMoveInfo();

...

func

public

void

PlayBasicMove(...){}

(overload)

BasicMoveInfo basicMove, string clipName, float blendingTime, bool replay

Update()

(crouching)

GlobalInfo.cs

//all enums and global classes

public

class

ScriptableObject

GlobalInfo

public

float

gravity = .37f;

enum

(player)

(physics)

(control)

class

(character)

(display)

CameraOptions{}

CharacterRotationOptions{}

(hit)

HitOptions{}

public

HitTypeOptions

weakHit;

...

crumpleHit;

HitTypeOptions{}

public GameObject hitParticle;

...

public bool shakeCameraOnHit = true;

public bool shakeCharacterOnHit = true;

ComboOptions{}

public float minPushForce = 5;

(block)

(knockdown)

(bounce)

(game)

(GUI)

GUIOptions{}

(background)

(rounds)

AnnouncerOptions{}

(runtime)

Game

TrainingRoom

Plane

Layer == "Ground"

Player1

Player2

MainCamera

Directional Light

Player Light