示例#1
0
        private void CreateSpotlightDataTabPageControls(TabButton tab, string name)
        {
            Base page = tab.Page;

            page.Name = $"{name}Page";

            SpotlightData sData = GetSpotlightDataForControl(page);

            int y = 5;
            int x = 12;

            CreateFloatFieldControl(page, x, ref y, $"{name}{nameof(SpotlightData.OuterAngle)}", "Outer Angle ", 0, 90, 0.5f, sData.OuterAngle);
            CreateFloatFieldControl(page, x, ref y, $"{name}{nameof(SpotlightData.InnerAngle)}", "Inner Angle ", 0, 90, 0.5f, sData.InnerAngle);
            CreateFloatFieldControl(page, x, ref y, $"{name}{nameof(SpotlightData.Intensity)}", "Intensity ", -9999, 9999, 1f, sData.Intensity);
            CreateFloatFieldControl(page, x, ref y, $"{name}{nameof(SpotlightData.Range)}", "Range ", -9999, 9999, 1f, sData.Range);
            CreateFloatFieldControl(page, x, ref y, $"{name}{nameof(SpotlightData.Falloff)}", "Falloff ", -9999, 9999, 1f, sData.Falloff);
            CreateFloatFieldControl(page, x, ref y, $"{name}{nameof(SpotlightData.VolumeIntensity)}", "Volume Intensity ", -9999, 9999, 0.05f, sData.VolumeIntensity);
            CreateFloatFieldControl(page, x, ref y, $"{name}{nameof(SpotlightData.VolumeSize)}", "Volume Size ", -9999, 9999, 0.05f, sData.VolumeSize);
            CreateFloatFieldControl(page, x, ref y, $"{name}{nameof(SpotlightData.MovementSpeed)}", "Movement Speed ", 0, 100, 0.5f, sData.MovementSpeed);

            y += 6;
            CreateSaveButton(page, x, ref y, $"{name}Save", "Save ");

            y = 5;
            x = 285;
            CreateFloatFieldControl(page, x, ref y, $"{name}{nameof(SpotlightData.CoronaIntensity)}", "Corona Intensity ", 0, 9999, 0.05f, sData.CoronaIntensity);
            CreateFloatFieldControl(page, x, ref y, $"{name}{nameof(SpotlightData.CoronaSize)}", "Corona Size ", -9999, 9999, 0.05f, sData.CoronaSize);
            CreateBoolFieldControl(page, x, ref y, $"{name}{nameof(SpotlightData.CastShadows)}", "Cast Shadows ", sData.CastShadows);
            CreateBoolFieldControl(page, x, ref y, $"{name}{nameof(SpotlightData.Volume)}", "Volume ", sData.Volume);
            CreateBoolFieldControl(page, x, ref y, $"{name}{nameof(SpotlightData.Corona)}", "Corona ", sData.Corona);
            CreateBoolFieldControl(page, x, ref y, $"{name}{nameof(SpotlightData.Specular)}", "Specular ", sData.Specular);
            CreateColorFieldControl(page, x, ref y, $"{name}{nameof(SpotlightData.Color)}", "Color ", sData.Color);
        }
示例#2
0
    IEnumerator ExtendSpotlight(SpotlightData data)
    {
        animating      = true;
        Time.timeScale = 0;

        // Reset the spotlight values just in case
        SetTransparency(0f);
        SetSpread(0f);

        // Darken screen
        Image panel = rightPanel.GetComponent <Image>();

        while (panel.color.a < data.alpha - 0.01f)
        {
            SetTransparency(Mathf.Lerp(panel.color.a, data.alpha, 0.25f));
            yield return(null);
        }
        SetTransparency(data.alpha);


        // Expand spotlight
        while (rightPanel.transform.eulerAngles.z < data.spread - 0.01f)
        {
            SetSpread(Mathf.Lerp(rightPanel.transform.eulerAngles.z, data.spread, 0.25f));
            yield return(null);
        }
        SetSpread(data.spread);

        animating   = false;
        spotlightOn = true;
    }
示例#3
0
        private void SetFieldForControl(Base control, Color value)
        {
            SpotlightData d = GetSpotlightDataForControl(control);

            if (control.Name.Contains(nameof(SpotlightData.Color)))
            {
                d.Color = value;
            }
        }
示例#4
0
    public bool CreateSpotlight(float spread, float x_pos, float alpha)
    {
        if (!animating && !spotlightOn)
        {
            gameObject.SetActive(true);

            SetPosition(x_pos);
            SpotlightData dat = new SpotlightData(spread, alpha);
            StartCoroutine("ExtendSpotlight", dat);
            return(true);
        }
        else
        {
            return(false);
        }
    }
示例#5
0
        private void SetFieldForControl(Base control, float value)
        {
            SpotlightData d = GetSpotlightDataForControl(control);

            if (control.Name.Contains(nameof(SpotlightData.OuterAngle)))
            {
                d.OuterAngle = value;
            }
            else if (control.Name.Contains(nameof(SpotlightData.InnerAngle)))
            {
                d.InnerAngle = value;
            }
            else if (control.Name.Contains(nameof(SpotlightData.Intensity)) && !control.Name.Contains("Volume") && !control.Name.Contains("Corona"))
            {
                d.Intensity = value;
            }
            else if (control.Name.Contains(nameof(SpotlightData.Range)))
            {
                d.Range = value;
            }
            else if (control.Name.Contains(nameof(SpotlightData.Falloff)))
            {
                d.Falloff = value;
            }
            else if (control.Name.Contains(nameof(SpotlightData.VolumeIntensity)))
            {
                d.VolumeIntensity = value;
            }
            else if (control.Name.Contains(nameof(SpotlightData.VolumeSize)))
            {
                d.VolumeSize = value;
            }
            else if (control.Name.Contains(nameof(SpotlightData.CoronaIntensity)))
            {
                d.CoronaIntensity = value;
            }
            else if (control.Name.Contains(nameof(SpotlightData.CoronaSize)))
            {
                d.CoronaSize = value;
            }
            else if (control.Name.Contains(nameof(SpotlightData.MovementSpeed)))
            {
                d.MovementSpeed = value;
            }
        }
示例#6
0
        private void SetFieldForControl(Base control, bool value)
        {
            SpotlightData d = GetSpotlightDataForControl(control);

            if (control.Name.Contains(nameof(SpotlightData.CastShadows)))
            {
                d.CastShadows = value;
            }
            else if (control.Name.Contains(nameof(SpotlightData.Volume)))
            {
                d.Volume = value;
            }
            else if (control.Name.Contains(nameof(SpotlightData.Corona)))
            {
                d.Corona = value;
            }
            else if (control.Name.Contains(nameof(SpotlightData.Specular)))
            {
                d.Specular = value;
            }
        }
示例#7
0
 public APISpotlight(SpotlightData data) : base(data)
 {
     APISpotlightMgr.AddSpotlight(this);
 }