コード例 #1
0
    public void setColor(Constants.Color color)
    {
        this.color = color;
        var renderer  = GetComponentInChildren <Renderer>();
        var materials = renderer.sharedMaterials;

        switch (color)
        {
        case Constants.Color.Red:
            materials[0] = baseRed;
            materials[1] = detailRed;
            break;

        case Constants.Color.Green:
            materials[0] = baseGreen;
            materials[1] = detailGreen;
            break;

        case Constants.Color.Blue:
            materials[0] = baseBlue;
            materials[1] = detailBlue;
            break;
        }
        renderer.sharedMaterials = materials;
    }
コード例 #2
0
    void ReadInput()
    {
        // Player 2
        bool fire = Input.GetButton("Launch2");

        // Player 1
        if (gameObject.name == "Player")
        {
            fire = Input.GetButton("Launch1");
        }
        if (fire)
        {
            if (!missileLaunched)
            {
                //FIRE ZHE MIZZILEZ
                GameObject missile = Instantiate(
                    missilePrefab,
                    silo.transform.position,
                    silo.transform.rotation
                    );
                var component = missile.GetComponent <Missile>();
                component.velocity = silo.transform.position.normalized;

                component.initialDirection = silo.transform.TransformVector(
                    new Vector3(LaunchDirection(), 0, 0)
                    );
                component.SetOwner(this);
                missileLaunched = true;

                missile.GetComponent <Missile>().setColor(nextColor);
                nextColor         = NewColor();
                nextMissile.color = TranslateToSensibleColor(nextColor);
            }
        }
    }
コード例 #3
0
    void Start()
    {
        timeUntilNewDirection = 0.0f;
        rb = GetComponent <Rigidbody>();
        Array values = Enum.GetValues(typeof(Constants.Color));

        color = (Constants.Color)values.GetValue((int)UnityEngine.Random.Range(0, values.Length));
        setColor(color);
    }
コード例 #4
0
 // Start is called before the first frame update
 void Start()
 {
     foreach (var joystick in Input.GetJoystickNames())
     {
         Debug.Log(joystick);
     }
     canvas            = transform.Find("Canvas").GetComponent <Canvas>();
     scoreText         = canvas.transform.Find("ScoreText").GetComponent <Text>();
     scoreText.text    = "Score: " + score;
     fuelBar           = canvas.transform.Find("FuelBar").GetComponent <Image>();
     nextMissile       = canvas.transform.Find("NextMissile").GetComponent <Image>();
     nextColor         = NewColor();
     nextMissile.color = TranslateToSensibleColor(nextColor);
 }
コード例 #5
0
 private Color TranslateToSensibleColor(Constants.Color nextColor)
 {
     if (nextColor == Constants.Color.Blue)
     {
         return(new Color(0, 115.0f / 255.0f, 202.0f / 255.0f));
     }
     else if (nextColor == Constants.Color.Green)
     {
         return(new Color(48.0f / 255.0f, 204.0f / 255.0f, 0));
     }
     else
     {
         return(new Color(204.0f / 255.0f, 0, 4.0f / 255.0f));
     }
 }
コード例 #6
0
    void setColor(Constants.Color color)
    {
        this.color = color;

        var renderer  = GetComponentInChildren <Renderer>();
        var materials = renderer.sharedMaterials;

        switch (color)
        {
        case Constants.Color.Red:
            materials[1] = clothesRed;
            break;

        case Constants.Color.Green:
            materials[1] = clothesGreen;
            break;

        case Constants.Color.Blue:
            materials[1] = clothesBlue;
            break;
        }
        renderer.sharedMaterials = materials;
    }
コード例 #7
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);
    }