Beispiel #1
0
    private void Update()
    {
        if (Input.GetButtonDown("Use"))
        {
            RaycastHit hit;
            Ray        ray = Camera.mainCamera.ScreenPointToRay(new Vector2(_targetRect.x, _targetRect.y));
            if (Physics.Raycast(ray, out hit, 8))
            {
                // Did we targeted door?
                RRDoor door = hit.transform.gameObject.GetComponent <RRDoor>();
                if (door)
                {
                    if (door.Cube)
                    {
                        door.Cube.OpenDoor(door);
                    }
                }
                else if (hit.collider.name == "Decal")
                {
                    // Hit Decal - edit?
                }
                else
                {
                    // Place decal
                    GameObject decal = RRDecal.PlaceDecal((Texture)Resources.Load("Textures/IWasHere"), hit);
                    decal.AddComponent(typeof(BoxCollider));

                    // Disable cube destroying
                    hit.collider.FindParentWithTag("Cube").GetComponent <RRCube>().WorldBound = true;
                }
            }
        }
    }
Beispiel #2
0
    public bool OpenDoor(RRDoor door)
    {
        if( RRGame.SharedInstance.HasOpenDoors ) {
            door.gameObject.audio.PlayOneShot( door.lockedSounds );
            // You can't open more than one door at a time
            return false;
        }

        return door.Open();
    }
Beispiel #3
0
    public bool OpenDoor(RRDoor door)
    {
        if (RRGame.SharedInstance.HasOpenDoors)
        {
            door.gameObject.audio.PlayOneShot(door.lockedSounds);
            // You can't open more than one door at a time
            return(false);
        }

        return(door.Open());
    }
Beispiel #4
0
    private void DoorStateChanged(RRDoor door)
    {
        _hasOpenDoors = door.isOpen;

        if (door.isOpen)
        {
            this.SpawnCubeInDirection(door.Direction, door.Cube);
        }

        if (_hasOpenDoors == false)
        {
            Vector3 previousPlayerPosition = _player.Cube.WorldPosition;

            this.CalculatePlayerCube();

            if (Random.Range(0, 2) == 1 && previousPlayerPosition != _player.Cube.WorldPosition)
            {
                this.ShuffleAtPoint(previousPlayerPosition);
            }
        }
    }
Beispiel #5
0
    private void DoorStateChanged(RRDoor door)
    {
        _hasOpenDoors = door.isOpen;

        if( door.isOpen ){
            this.SpawnCubeInDirection( door.Direction, door.Cube );
        }

        if( _hasOpenDoors == false ){
            Vector3 previousPlayerPosition = _player.Cube.WorldPosition;

            this.CalculatePlayerCube();

            if( Random.Range(0, 2) == 1 && previousPlayerPosition != _player.Cube.WorldPosition ){
                this.ShuffleAtPoint( previousPlayerPosition );
            }
        }
    }