// ==================================================== void Squash(PhysicsController other) { PlayerController player = other.GetComponent <PlayerController>(); if (player != null) { player.InstaDeath(); return; } PatrollingEnemy patroller = other.GetComponent <PatrollingEnemy>(); if (patroller != null) { patroller.InstaDeath(); return; } Destroy(other.gameObject); }
// Update is called once per frame void Update() { if (m_reference.Velocity != Vector2.zero) { Vector3 temp = m_reference.Velocity; temp.x *= xDampener; temp.y *= yDampener; m_reference.GetComponent <PhysicsController>().Velocity = temp; } }
// Start is called before the first frame update void Start() { _squish = GetComponent <Squishy3D>(); _rends = _model.GetComponentsInChildren <Renderer>(); _player = _parentPhysics.GetComponent <PlayerScript>(); _default = _rends[0].material.shader; _white = Shader.Find("GUI/Text Shader"); for (int i = 0; i < _rends.Length; i++) { _startCol.Add(new List <Color>()); for (int j = 0; j < _rends[i].materials.Length; j++) { _startCol[i].Add(_rends[i].materials[j].color); } } }
// ==================================================== void LateUpdate() { //animator.Update( MinigameTimeManager.instance.deltaTime ); Vector2 deltaPos = myTransform.position - lastPosition; platformPhysicsController.Move(deltaPos, lastPosition); foreach (CollisionInfo collisionInfo in platformPhysicsController.currentCollisions.Values) { PhysicsController other = collisionInfo.collider.GetComponent <PhysicsController>(); if (other == null || other is PlatformPhysicsController) { continue; } Vector2 deltaMovement = collisionInfo.deltaMovement; PlayerController player = other.GetComponent <PlayerController>(); if (player != null) { if (collisionInfo.forcedMovementDirection == Vector2.right && !player.isGrabbingToWall) { deltaMovement.y = 0; } if (collisionInfo.forcedMovementDirection == -Vector2.right && !player.isGrabbingToWall) { deltaMovement.y = 0; } } if (collisionInfo.forcedMovementDirection == -Vector2.up) { deltaMovement.y = deltaMovement.y > 0 ? 0 : deltaMovement.y; } Vector2 deltaResult = other.Move(deltaMovement, false); if (collisionInfo.forcedMovementDirection == Vector2.up) { other.isGrounded = true; if (deltaResult.y < deltaMovement.y) { Squash(other); } } else if (collisionInfo.forcedMovementDirection == -Vector2.up) { other.didHitCeiling = true; if (deltaResult.y > deltaMovement.y) { Squash(other); } } else if (collisionInfo.forcedMovementDirection == Vector2.right) { other.didHitLeft = true; if (deltaResult.x < deltaMovement.x) { Squash(other); } } else if (collisionInfo.forcedMovementDirection == -Vector2.right) { other.didHitRight = true; if (deltaResult.x > deltaMovement.x) { Squash(other); } } } lastPosition = myTransform.position; }