Esempio n. 1
0
	public static void Bounce (Rigidbody mover, Transform obstacle, BounceTowards bounceTo)
		{
		Vector3 direction;

		Direction side = CalcRectSide(mover.transform.position.x, mover.transform.position.z, obstacle);

		float dirCoeff = 1.0f;
		if (bounceTo == BounceTowards.Inwards)
			dirCoeff = -1.0f;

		if (side == Bouncer.Direction.top)
			direction = new Vector3 (mover.velocity.x, 0.0f, dirCoeff * Mathf.Abs(mover.velocity.z));
		else if (side == Bouncer.Direction.bottom)
			direction = new Vector3 (mover.velocity.x, 0.0f, -dirCoeff * Mathf.Abs(mover.velocity.z));
		else if (side == Bouncer.Direction.left)
			direction = new Vector3 (dirCoeff * Mathf.Abs(mover.velocity.x), 0.0f, mover.velocity.z);
		else if (side == Bouncer.Direction.right)
			direction = new Vector3 (-dirCoeff * Mathf.Abs(mover.velocity.x), 0.0f, mover.velocity.z);
		else
			direction = new Vector3 (0.0f, 0.0f, 0.0f);

		mover.velocity = direction;
		}
Esempio n. 2
0
    public static void Bounce(Rigidbody mover, Transform obstacle, BounceTowards bounceTo)
    {
        Vector3 direction;

        Direction side = CalcRectSide(mover.transform.position.x, mover.transform.position.z, obstacle);

        float dirCoeff = 1.0f;

        if (bounceTo == BounceTowards.Inwards)
        {
            dirCoeff = -1.0f;
        }

        if (side == Bouncer.Direction.top)
        {
            direction = new Vector3(mover.velocity.x, 0.0f, dirCoeff * Mathf.Abs(mover.velocity.z));
        }
        else if (side == Bouncer.Direction.bottom)
        {
            direction = new Vector3(mover.velocity.x, 0.0f, -dirCoeff * Mathf.Abs(mover.velocity.z));
        }
        else if (side == Bouncer.Direction.left)
        {
            direction = new Vector3(dirCoeff * Mathf.Abs(mover.velocity.x), 0.0f, mover.velocity.z);
        }
        else if (side == Bouncer.Direction.right)
        {
            direction = new Vector3(-dirCoeff * Mathf.Abs(mover.velocity.x), 0.0f, mover.velocity.z);
        }
        else
        {
            direction = new Vector3(0.0f, 0.0f, 0.0f);
        }

        mover.velocity = direction;
    }