void FixedUpdate() { tenants.RemoveAll(ten => !ten || ReferenceEquals(ten, null)); foreach (Rigidbody2D rb2d in tenants) { Vector2 finalGravityVector = (radialGravity) ? (Vector2)(transform.position - rb2d.transform.position).normalized * gravityScale : gravityVector; Vector3 vector = finalGravityVector * rb2d.mass; GravityAccepter ga = rb2d.GetComponent <GravityAccepter>(); if (ga) { if (ga.AcceptsGravity) { vector *= ga.gravityScale; rb2d.AddForce(vector); //Inform the gravity accepter of the direction ga.addGravity(finalGravityVector); } } else { rb2d.AddForce(vector); } } }
// Use this for initialization void Start() { rb2d = GetComponent <Rigidbody2D>(); hm = GetComponent <HardMaterial>(); groundCollider = GetComponent <BoxCollider2D>(); gravity = GetComponent <GravityAccepter>(); direction = Utility.PerpendicularLeft(transform.up).normalized; player = GameManager.getPlayerObject(); }
public override void init() { Gravity = GetComponent <GravityAccepter>(); Grounded = false; GroundedNormal = false; GroundedAbility = false; GroundedPrev = false; GroundedNormalPrev = false; GroundedAbilityPrev = false; }
void FixedUpdate() { bool cleanNeeded = false; foreach (Rigidbody2D rb2d in tenants) { if (rb2d == null || ReferenceEquals(rb2d, null)) { cleanNeeded = true; continue; } Vector3 vector = gravityVector * rb2d.mass; GravityAccepter ga = rb2d.gameObject.GetComponent <GravityAccepter>(); if (ga) { if (ga.AcceptsGravity) { rb2d.AddForce(vector); } //Inform the gravity accepter of the direction if (mainGravityZone) { ga.Gravity = this.gravityVector; } } else { rb2d.AddForce(vector); } } //Check to see if the camera rotation needs updated if (mainGravityZone && Camera.main.transform.rotation != transform.rotation) { //Check to see if Merky is in this GravityZone if (GameManager.getPlayerObject().GetComponent <GravityAccepter>().Gravity == gravityVector) { Camera.main.GetComponent <CameraController>().setRotation(transform.rotation); } } if (cleanNeeded) { for (int i = tenants.Count - 1; i >= 0; i--) { if (tenants[i] == null || ReferenceEquals(tenants[i], null)) { tenants.RemoveAt(i); } } } }
// Use this for initialization void Start() { rb2d = GetComponent <Rigidbody2D>(); pc2d = GetComponent <PolygonCollider2D>(); gravity = GetComponent <GravityAccepter>(); mainCamCtr = Camera.main.GetComponent <CameraController>(); gm = GameObject.FindGameObjectWithTag("GestureManager").GetComponent <GestureManager>(); halfWidth = GetComponent <SpriteRenderer>().bounds.extents.magnitude; hm = GetComponent <HardMaterial>(); hm.shattered += shattered; fta = GetComponent <ForceTeleportAbility>(); wca = GetComponent <WallClimbAbility>(); sba = GetComponent <ShieldBubbleAbility>(); teleportRangeParticalController = teleportRangeParticalObject.GetComponent <ParticleSystemController>(); }
void FixedUpdate() { if (GameManager.isRewinding()) { return;//don't do anything if tie is rewinding } bool cleanNeeded = false; foreach (Rigidbody2D rb2d in tenants) { if (rb2d == null || ReferenceEquals(rb2d, null)) { cleanNeeded = true; continue; } Vector3 vector = gravityVector * rb2d.mass; GravityAccepter ga = rb2d.gameObject.GetComponent <GravityAccepter>(); if (ga) { if (ga.AcceptsGravity) { rb2d.AddForce(vector); //Inform the gravity accepter of the direction ga.addGravity(this.gravityVector); } } else { rb2d.AddForce(vector); } } if (cleanNeeded) { for (int i = tenants.Count - 1; i >= 0; i--) { if (tenants[i] == null || ReferenceEquals(tenants[i], null)) { tenants.RemoveAt(i); } } } }
public override void init() { ga = GetComponent <GravityAccepter>(); }