示例#1
0
    public void ChangeRed(bool up)
    {
        string result = CM.ConvertToHex(RedValue);
        string redstr = result[1].ToString() + result[2].ToString();
        int    red    = int.Parse(redstr, System.Globalization.NumberStyles.HexNumber);

        //int alpha = increment / 3;

        int newred = 0;

        if (up)
        {
            if (red + increment >= 255)
            {
                Debug.Log("Red at maximum");
                SetKnob();
                return;
            }
            else
            {
                newred = red + increment;
                RotateKnob(up);
            }
        }
        else
        {
            if (red - increment <= 0)
            {
                Debug.Log("Red at zero");
                RedValue = Color.clear;
                CM.DrawLineBetweenTwoVectors(RedLaserGO.transform.position, Mirror.transform.position, RedValue, LineMaterial, RedLaserGO, RedLaser, false);
                ChangeOutput();
                SetKnob();
                return;
            }
            else
            {
                newred = red - increment;
                RotateKnob(up);
            }
        }

        Debug.Log(newred);
        string hexValue = "#" + newred.ToString("X") + "0000";

        if (hexValue.Length == 6)
        {
            hexValue = hexValue.Insert(1, "0");
        }
        RedValue = CM.ConvertToColor(hexValue);

        CM.DrawLineBetweenTwoVectors(RedLaserGO.transform.position, Mirror.transform.position, RedValue, LineMaterial, RedLaserGO, RedLaser, false);
        ChangeOutput();
    }
示例#2
0
 public void ResetColors()
 {
     RedValue   = Color.clear;
     BlueValue  = Color.clear;
     GreenValue = Color.clear;
     OutputVal  = Color.clear;
     CM.DrawLineBetweenTwoVectors(RedLaserGO.transform.position, Mirror.transform.position, RedValue, LineMaterial, RedLaserGO, RedLaser, false);
     CM.DrawLineBetweenTwoVectors(BlueLaserGO.transform.position, Mirror.transform.position, BlueValue, LineMaterial, BlueLaserGO, BlueLaser, true);
     CM.DrawLineBetweenTwoVectors(GreenLaserGO.transform.position, Mirror.transform.position, GreenValue, LineMaterial, GreenLaserGO, GreenLaser, false);
     CM.DrawLineBetweenTwoVectors(Mirror.transform.position, OutputLaserGO.transform.position, OutputVal, LineMaterial, OutputLaserGO, OutputLaser, true);
 }
示例#3
0
    public void ChangeBlue(bool up)
    {
        string result  = CM.ConvertToHex(BlueValue);
        string bluestr = result[5].ToString() + result[6].ToString();
        int    blue    = int.Parse(bluestr, System.Globalization.NumberStyles.HexNumber);

        int newblue = 0;

        if (up)
        {
            if (blue + increment >= 255)
            {
                Debug.Log("Blue at maximum");
                SetKnob();
                return;
            }
            else
            {
                newblue = blue + increment;
                RotateKnob(up);
            }
        }
        else
        {
            if (blue - increment <= 0)
            {
                Debug.Log("Blue at zero or will be below zero.");
                BlueValue = Color.clear;
                CM.DrawLineBetweenTwoVectors(BlueLaserGO.transform.position, Mirror.transform.position, BlueValue, LineMaterial, BlueLaserGO, BlueLaser, true);
                ChangeOutput();
                SetKnob();
                return;
            }
            else
            {
                newblue = blue - increment;
                RotateKnob(up);
            }
        }

        Debug.Log(newblue);
        string hexValue = "#0000" + newblue.ToString("X");

        if (hexValue.Length == 6)
        {
            hexValue = hexValue.Insert(5, "0");
        }
        BlueValue = CM.ConvertToColor(hexValue);
        Debug.Log(BlueValue);
        CM.DrawLineBetweenTwoVectors(BlueLaserGO.transform.position, Mirror.transform.position, BlueValue, LineMaterial, BlueLaserGO, BlueLaser, true);
        ChangeOutput();
    }
示例#4
0
    public void ChangeGreen(bool up)
    {
        string result   = CM.ConvertToHex(GreenValue);
        string greenstr = result[3].ToString() + result[4].ToString();
        int    green    = int.Parse(greenstr, System.Globalization.NumberStyles.HexNumber);

        int newgreen = 0;

        if (up)
        {
            if (green + increment >= 255)
            {
                Debug.Log("Green at maximum");
                SetKnob();
                return;
            }
            else
            {
                newgreen = green + increment;
                RotateKnob(up);
            }
        }
        else
        {
            if (green - increment <= 0)
            {
                Debug.Log("Green at zero");
                GreenValue = Color.clear;
                CM.DrawLineBetweenTwoVectors(GreenLaserGO.transform.position, Mirror.transform.position, GreenValue, LineMaterial, GreenLaserGO, GreenLaser, false);
                ChangeOutput();
                SetKnob();
                return;
            }
            else
            {
                newgreen = green - increment;
                RotateKnob(up);
            }
        }

        Debug.Log(newgreen);
        string hexValue = "#00" + newgreen.ToString("X") + "00";

        if (hexValue.Length == 6)
        {
            hexValue = hexValue.Insert(3, "0");
        }
        GreenValue = CM.ConvertToColor(hexValue);
        CM.DrawLineBetweenTwoVectors(GreenLaserGO.transform.position, Mirror.transform.position, GreenValue, LineMaterial, GreenLaserGO, GreenLaser, false);
        ChangeOutput();
    }
示例#5
0
    public void ChangeOutput()
    {
        string red   = CM.ConvertToHex(RedValue);
        string green = CM.ConvertToHex(GreenValue);
        string blue  = CM.ConvertToHex(BlueValue);

        string hexValue = "#" + red[1] + red[2] + green[3] + green[4] + blue[5] + blue[6];

        OutputVal = CM.ConvertToColor(hexValue);
        if (RedValue == Color.clear && GreenValue == Color.clear && BlueValue == Color.clear)
        {
            OutputVal = Color.clear;
        }
        CM.DrawLineBetweenTwoVectors(Mirror.transform.position, OutputLaserGO.transform.position, OutputVal, LineMaterial, OutputLaserGO, OutputLaser, true);
    }
示例#6
0
    // Start is called before the first frame update
    void Start()
    {
        OutputVal = Color.white;

        // Add The Line Renderers
        RedLaser    = RedLaserGO.AddComponent <LineRenderer>();
        GreenLaser  = GreenLaserGO.AddComponent <LineRenderer>();
        BlueLaser   = BlueLaserGO.AddComponent <LineRenderer>();
        OutputLaser = OutputLaserGO.AddComponent <LineRenderer>();

        // Set Colors
        CM.SetColorMaterialTransform(TrueValue, ColorMatcher.transform);
        CM.SetColorMaterialTransform(Color.red, redKnob.transform);
        CM.SetColorMaterialTransform(Color.green, greenKnob.transform);
        CM.SetColorMaterialTransform(Color.blue, blueKnob.transform);

        // Draw Lines
        CM.DrawLineBetweenTwoVectors(RedLaserGO.transform.position, Mirror.transform.position, RedValue, LineMaterial, RedLaserGO, RedLaser, false);
        CM.DrawLineBetweenTwoVectors(BlueLaserGO.transform.position, Mirror.transform.position, BlueValue, LineMaterial, BlueLaserGO, BlueLaser, true);
        CM.DrawLineBetweenTwoVectors(GreenLaserGO.transform.position, Mirror.transform.position, GreenValue, LineMaterial, GreenLaserGO, GreenLaser, false);
        CM.DrawLineBetweenTwoVectors(Mirror.transform.position, OutputLaserGO.transform.position, OutputVal, LineMaterial, OutputLaserGO, OutputLaser, true);
    }