protected void MovePhysics() { if (Time.timeScale > 0 && !isSceneLoading) { for (int i = movingPlatforms.Count - 1; i >= 0; i--) { RexPhysics physicsObject = movingPlatforms[i]; if (physicsObject != null && physicsObject.isEnabled) { physicsObject.ResetFlags(); physicsObject.StepPhysics(); physicsObject.transform.position = physicsObject.properties.position; physicsObject.GetComponent <MovingPlatform>().moveDistance.x = physicsObject.properties.position.x - physicsObject.previousFrameProperties.position.x; physicsObject.GetComponent <MovingPlatform>().moveDistance.y = physicsObject.properties.position.y - physicsObject.previousFrameProperties.position.y; } } for (int i = physicsObjects.Count - 1; i >= 0; i--) { RexPhysics physicsObject = physicsObjects[i]; if (physicsObject != null && physicsObject.isEnabled) { physicsObject.ResetFlags(); physicsObject.StepPhysics(); physicsObject.transform.position = physicsObject.properties.position; } } } }
public void UnregisterPhysicsObject(RexPhysics physicsObject) { if (physicsObject.isMovingPlatform) { movingPlatforms.Remove(physicsObject); } else { physicsObjects.Remove(physicsObject); } }
public void RegisterPhysicsObject(RexPhysics physicsObject) { if (physicsObject.isMovingPlatform) { movingPlatforms.Add(physicsObject); } else { physicsObjects.Add(physicsObject); } }
public void OnDestroy() { for (int i = physicsObjects.Count - 1; i >= 0; i--) { RexPhysics physicsObject = physicsObjects[i]; Destroy(physicsObject); } for (int i = movingPlatforms.Count - 1; i >= 0; i--) { RexPhysics physicsObject = movingPlatforms[i]; Destroy(physicsObject); } }
void Awake() { if (!physicsObject) { physicsObject = GetComponent <RexPhysics>(); } if (minMovePosition) { minMovePositionVector = new Vector2(minMovePosition.position.x, minMovePosition.position.y); } if (maxMovePosition) { maxMovePositionVector = new Vector2(maxMovePosition.position.x, maxMovePosition.position.y); } }
private static void FillRexActorSlots() { GameObject selectedObject = Selection.activeGameObject; RexActor actor = null; if (selectedObject) { actor = selectedObject.GetComponent <RexActor>(); } if (actor != null) { actor.slots.physicsObject = actor.GetComponent <RexPhysics>(); actor.slots.anim = actor.GetComponent <Animator>(); actor.slots.controller = actor.GetComponentInChildren <RexController>(); actor.slots.input = actor.GetComponent <RexInput>(); actor.slots.jitter = actor.GetComponent <Jitter>(); actor.slots.spriteHolder = actor.transform.Find("SpriteHolder"); actor.slots.spriteRenderer = actor.transform.Find("SpriteHolder").GetComponentInChildren <SpriteRenderer>(); if (actor.damagedProperties.spritesToFlash == null) { actor.damagedProperties.spritesToFlash = new List <SpriteRenderer>(); } actor.damagedProperties.spritesToFlash.Add(actor.slots.spriteRenderer); actor.slots.collider = actor.GetComponent <BoxCollider2D>(); RexPhysics physicsObject = actor.GetComponent <RexPhysics>(); if (physicsObject != null) { physicsObject.rexObject = actor; } RexController controller = actor.slots.controller; if (controller) { controller.slots.actor = actor; actor.waterProperties.landController = controller; } Energy[] energy = actor.GetComponentsInChildren <Energy>(); if (energy.Length > 0) { for (int i = 0; i < energy.Length; i++) { if (energy[i].gameObject.name == "HP") { actor.hp = energy[i]; } else if (energy[i].gameObject.name == "MP") { actor.mp = energy[i]; } } if (actor.hp == null) { actor.hp = energy[0]; } } Attack[] attacks = actor.GetComponentsInChildren <Attack>(); for (int i = 0; i < attacks.Length; i++) { attacks[i].slots.actor = actor; } EditorUtility.DisplayDialog("Yeah!", "The RexActor was successfully slotted!", "Yay!"); } else { EditorUtility.DisplayDialog("Ruh-roh!", "Please select a GameObject with a RexActor component first.", "Got it!"); } }