Пример #1
0
 void Start()
 {
     rb              = GetComponent <Rigidbody>();
     playerState     = PlayerStateManager.Instance();
     playerTransform = GameObject.FindGameObjectWithTag("Player").transform;
     pickupPosition  = Camera.main.transform.forward * 5f;
     mainCamera      = Camera.main;
     //pickupDistance = mainCamera.GetComponent<MouseLook>().maxRaycastDistance * 0.9f;
     //OnInteract();
     gameObject.layer = Constants.GetLayerMask(this.color);
 }
Пример #2
0
    public void Start()
    {
        //We are now showing the control screen first

        /*Cursor.lockState = CursorLockMode.Locked;
         *      Cursor.visible = false;*/
        Cursor.lockState = CursorLockMode.None;
        Cursor.visible   = true;
        hud                = GameObject.Find("HUD");
        playerState        = PlayerStateManager.Instance();
        dimension          = DimensionManager.Instance();
        orignalCamPosition = this.transform.localPosition;
    }
Пример #3
0
 private void Start()
 {
     dimension   = DimensionManager.Instance();
     audio       = AudioManager.Instance();
     playerState = PlayerStateManager.Instance();
 }
Пример #4
0
    // Returns whether the dimension changed or not
    public bool ChangeDimension(Constants.Color color, bool forcefield = false)
    {
        if (LevelManager.Instance().isLevelComplete)
        {
            return(false);
        }

        Constants.Color oldDimension = currentDimension;

        List <GameObject> objects = LevelManager.Instance().GetLevelObjects();

        foreach (GameObject obj in objects)
        {
            if (obj.tag == "DestroyOnLoad")
            {
                obj.GetComponent <MeshRenderer>().enabled = true;
            }
        }

        switch (color)
        {
        case Constants.Color.None:
            foreach (GameObject obj in objects)
            {
                if (obj.tag == "DestroyOnLoad")
                {
                    obj.GetComponent <MeshRenderer>().enabled = false;
                }
            }
            layers = new string[] { "Default", "Ground" };

            break;

        case Constants.Color.White:
        {
            layers = new string[] { "Default", "Ground" };
            break;
        }

        case Constants.Color.Red:
        case Constants.Color.Blue:
        case Constants.Color.Green:
        {
            layers = new string[] { "Default", "Ground", "White", color.ToString() };
            break;
        }

        default:
        {
            break;
        }
        }

        PlayerMovement.Instance().groundMask = LayerMask.GetMask(layers);

        // Don't change current dimension when we are entering the forcefield
        if (color != Constants.Color.White)
        {
            currentDimension = color;
        }
        if (forcefield)
        {
            foreach (GameObject obj in objects)
            {
                Interactable interactable = obj.GetComponent <Interactable>();
                if (interactable)
                {
                    bool objectVisible = (interactable.color == Constants.Color.White || interactable.color == Constants.Color.None || interactable.color == color || color == Constants.Color.White) && color != Constants.Color.None;
                    Physics.IgnoreCollision(obj.GetComponent <Collider>(), PlayerStateManager.Instance().gameObject.GetComponent <CharacterController>(), !objectVisible);

                    DissolveScript dissolve = obj.GetComponent <DissolveScript>();
                    if (dissolve)
                    {
                        dissolve.SetDissolve(!objectVisible);
                    }
                }
            }
        }
        if (color != Constants.Color.White)
        {
            foreach (ProfileContainer container in profileContainers)
            {
                if (container.dimension == currentDimension)
                {
                    mainCamera.GetComponent <PostProcessVolume>().profile = container.profile;
                    mainCamera.GetComponent <Skybox>().material           = container.skybox;
                    break;
                }
            }
        }
        return(oldDimension != color);
    }