Unity3D:UFE
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