Ejemplo n.º 1
0
    void Update()
    {
        if (grounded)
        {
            return;
        }

        float shadowOffset = shadowController.GetShadowOffset();

        dropShadow.transform.position = transform.position - Vector3.up * shadowOffset;

//		dropShadow.transform.position += shadowVelocity * Time.deltaTime;
//		airTime -= Time.deltaTime;

//		Vector3 shadowToBox = transform.position - dropShadow.transform.position;
//		float heightSqr = shadowToBox.sqrMagnitude;
        if (Time.time > midPointTime && !shadowBox.IsTouching(boxCollider) && shadowOffset < strikeHeight)
        {
            gameObject.layer = LayerMask.NameToLayer("DynamicCollision");
        }

        if (Time.time > strikeTime)
        {
            grounded           = true;
            boxRB.gravityScale = 0;
            boxRB.drag         = groundedDrag;
            boxRB.velocity     = Vector2.zero;
            dropShadow.SetActive(false);
        }
    }
	protected void UpdateShadow() {
		if (!grounded) {
			landingResolved = false;
			rb2D.gravityScale = 1.0f;
			rb2D.drag = 0.0f;
			dropShadow.SetActive(true);
			gameObject.layer = LayerMask.NameToLayer ("Flying");
			spriteRenderer.sortingLayerName = "Flying";

			float shadowOffset = shadowController.GetShadowOffset ();

			// set the shadow position
			dropShadow.transform.position = transform.position + Vector3.down * shadowOffset;

			// coming in for a landing
			if (isFalling && shadowOffset < deadlyHeight)
				gameObject.layer = (int)Mathf.Log (groundedResetMask, 2);

		} else if (!landingResolved) {
			landingResolved = true;
			OnLanding ();
		}
		UpdateRobotBeam ();
	}