// Use this for initialization
	void Start () {
        rotation = CopyVector3(transform.rotation.eulerAngles);
        nextRotation = CopyVector3(transform.rotation.eulerAngles);

        SetCardinalPosition((int)rotation.y);
        mPreviousCardinalPosition = mCardinalPosition;
    }
    private void CameraPosition()
    {
        if (mRotate == Rotate.Stop)
        {
            mPreviousCardinalPosition = mCardinalPosition;
            //Debug.Log("Cardinal position: " + mCardinalPosition);
        }
        /*else
            Debug.Log("Going from " + mPreviousCardinalPosition + " to " + mCardinalPosition);*/



        float speed = cameraSpeed * Time.deltaTime;

        float angleDifference = Mathf.Abs(rotation.y - nextRotation.y);
        if (angleDifference <= speed)
        {
            rotation = nextRotation;
            transform.rotation = Quaternion.Euler(rotation);
            mRotate = Rotate.Stop;
        }

        switch (mRotate)
        {
            case Rotate.Left:
                rotation.y += speed;
                transform.rotation = Quaternion.Euler(rotation);
                break;
            case Rotate.Right:
                rotation.y -= speed;
                transform.rotation = Quaternion.Euler(rotation);
                break;
        }

        if (nextRotation.y < 0)
            nextRotation.y += 360;

        if (nextRotation.y > 360)
            nextRotation.y -= 360;

        if(rotation.y < 0)
        {
            rotation.y += 360;
            transform.rotation = Quaternion.Euler(rotation);
        }
        if (rotation.y > 360)
        {
            rotation.y -= 360;
            transform.rotation = Quaternion.Euler(rotation);
        }


    }
Beispiel #3
0
    private Vector3 ChangePosition(CardinalPosition cardinalPosition, Vector3 cursorPosition)
    {

        Vector3 newPlayerPosition = cursorPosition;

        switch (cardinalPosition)
        {
            case CardinalPosition.North:
                newPlayerPosition.x = northWall.position.x;
                break;
            case CardinalPosition.South:
                newPlayerPosition.x = southWall.position.x;
                break;
            case CardinalPosition.East:
                newPlayerPosition.z = eastWall.position.z;
                break;
            case CardinalPosition.West:
                newPlayerPosition.z = westWall.position.z;
                break;
        }
        return newPlayerPosition;
    }
Beispiel #4
0
    private void ChangePosition(CardinalPosition cardinalPosition)
    {

        Vector3 newPlayerPosition = new Vector3(transform.position.x, transform.position.y, transform.position.z);

        switch (cardinalPosition)
        {
            case CardinalPosition.North:
                newPlayerPosition.x = northWall.position.x;
                break;
            case CardinalPosition.South:
                newPlayerPosition.x = southWall.position.x;
                break;
            case CardinalPosition.East:
                newPlayerPosition.z = eastWall.position.z;
                break;
            case CardinalPosition.West:
                newPlayerPosition.z = westWall.position.z;
                break;
        }

        transform.position = newPlayerPosition;
    }
Beispiel #5
0
    // Use this for initialization
    void Start () {
        mCardinalPosition = camera.GetPreviousCardinalPosition();
        ChangePosition(mCardinalPosition);
	}
    private CardinalPosition SetNextCardinalPoint(CardinalPosition cardinalPoint, Rotate direction)
    {

        CardinalPosition newCardinal = CardinalPosition.North;

        if(direction == Rotate.Left)
        {
            switch (cardinalPoint)
            {
                case CardinalPosition.North:
                    newCardinal = CardinalPosition.East;
                    break;
                case CardinalPosition.East:
                    newCardinal = CardinalPosition.South;
                    break;
                case CardinalPosition.South:
                    newCardinal = CardinalPosition.West;
                    break;
                case CardinalPosition.West:
                    newCardinal = CardinalPosition.North;
                    break;
            }
        }

        else if(direction == Rotate.Right)
        {
            switch (cardinalPoint)
            {
                case CardinalPosition.North:
                    newCardinal = CardinalPosition.West;
                    break;
                case CardinalPosition.East:
                    newCardinal = CardinalPosition.North;
                    break;
                case CardinalPosition.South:
                    newCardinal = CardinalPosition.East;
                    break;
                case CardinalPosition.West:
                    newCardinal = CardinalPosition.South;
                    break;
            }
        }
        return newCardinal;
    }
    private void CameraControls()
    {
        if (mRotate != Rotate.Stop)
            return;

        if (Input.GetKeyDown(KeyCode.Q))
        {
            mPreviousCardinalPosition = mCardinalPosition;
            mRotate = Rotate.Left;
            mCardinalPosition = SetNextCardinalPoint(mCardinalPosition, mRotate);
            nextRotation.y += 90;
        }
        if (Input.GetKeyDown(KeyCode.E))
        {
            mPreviousCardinalPosition = mCardinalPosition;
            mRotate = Rotate.Right;
            mCardinalPosition = SetNextCardinalPoint(mCardinalPosition, mRotate);
            nextRotation.y -= 90;
        }
    }
    private void SetCardinalPosition(int eulerAngle)
    {

        int angleCardinalPosition = eulerAngle / 90;

        switch (angleCardinalPosition)
        {
            case 0:
                mCardinalPosition = CardinalPosition.East;
                break;
            case 1:
                mCardinalPosition = CardinalPosition.South;
                break;
            case 2:
                mCardinalPosition = CardinalPosition.West;
                break;
            case 3:
                mCardinalPosition = CardinalPosition.North;
                break;
        }
    }