Пример #1
0
    //// Update is called once per frame
    void Update()
    {
        FacedDirection tryRotateDirection;


        //Handle Player input
        // DONT PUT FLOOR UNDER A WALL
        if ((Input.GetKeyDown(KeyCode.W) && witchMove.GetHorizontal() == -1) || (Input.GetKeyDown(KeyCode.S) && witchMove.GetHorizontal() == 1))
        {
            tryRotateDirection = RotateDirectionLeft();
            if (witchMove.UpdateToFacedDirection(tryRotateDirection, degree + 90f, Level, WorldUnits))
            {
                facedDirection = tryRotateDirection;
                degree        += 90f;
            }
        }
        else if ((Input.GetKeyDown(KeyCode.W) && witchMove.GetHorizontal() == 1) || (Input.GetKeyDown(KeyCode.S) && witchMove.GetHorizontal() == -1))
        {
            tryRotateDirection = RotateDirectionRight();
            if (witchMove.UpdateToFacedDirection(tryRotateDirection, degree - 90f, Level, WorldUnits))
            {
                facedDirection = tryRotateDirection;
                degree        -= 90f;
            }
        }
        seeThroughBuilding(Player.transform.position);
    }
Пример #2
0
 // Use this for initialization
 void Start()
 {
     //Define our faced direction, must be the same as built in inspector
     //Cache our fezMove script located on the player and update our level data (create invisible cubes)
     facedDirection = FacedDirection.Front;
     witchMove      = Player.GetComponent <WitchMove>();
 }
Пример #3
0
    private void FlipDir()
    {
        Facing = (FacedDirection)((int)Facing * -1f);
        Vector3 LocalScale = ThisTransform.localScale;

        LocalScale.x            *= -1f;
        ThisTransform.localScale = LocalScale;
    }
Пример #4
0
    public bool UpdateToFacedDirection(FacedDirection newDirection, float angle, Transform level, float worldUnits)
    {
        Vector3 centerposition = Vector3.zero;

        //transform.position = new Vector3((int)transform.position.x + 1f, transform.position.y, (int)transform.position.z + 1f);
        foreach (Transform platform in level)
        {
            if (Mathf.Abs(platform.transform.position.x - transform.position.x) < worldUnits * 0.6 &&
                Mathf.Abs(platform.transform.position.z - transform.position.z) < worldUnits * 0.6 &&
                Mathf.Abs(platform.transform.position.y + worldUnits - transform.position.y) < worldUnits)
            {
                centerposition.Set(platform.transform.position.x, platform.transform.position.y + 1, platform.transform.position.z);
                break;
            }
        }

        foreach (Transform platform in level)
        {
            if ((centerposition != Vector3.zero) &&
                (((Horizontal == -1 && newDirection == FacedDirection.Back && platform.transform.position == new Vector3(centerposition.x + 1, centerposition.y - 1, centerposition.z)) ||
                  (Horizontal == -1 && newDirection == FacedDirection.Front && platform.transform.position == new Vector3(centerposition.x - 1, centerposition.y - 1, centerposition.z)) ||
                  (Horizontal == -1 && newDirection == FacedDirection.Left && platform.transform.position == new Vector3(centerposition.x, centerposition.y - 1, centerposition.z + 1)) ||
                  (Horizontal == -1 && newDirection == FacedDirection.Right && platform.transform.position == new Vector3(centerposition.x, centerposition.y - 1, centerposition.z - 1))) ||
                 ((Horizontal == 1 && newDirection == FacedDirection.Back && platform.transform.position == new Vector3(centerposition.x - 1, centerposition.y - 1, centerposition.z)) ||
                  (Horizontal == 1 && newDirection == FacedDirection.Front && platform.transform.position == new Vector3(centerposition.x + 1, centerposition.y - 1, centerposition.z)) ||
                  (Horizontal == 1 && newDirection == FacedDirection.Left && platform.transform.position == new Vector3(centerposition.x, centerposition.y - 1, centerposition.z - 1)) ||
                  (Horizontal == 1 && newDirection == FacedDirection.Right && platform.transform.position == new Vector3(centerposition.x, centerposition.y - 1, centerposition.z + 1)))))
            {
                transform.position = centerposition;
                _myFacedDirection  = newDirection;
                degree             = angle;
                return(true);
            }
        }

        return(false);
    }