/// <summary> /// Active Drunk FX with specific Drunk FX using Drunk_Preset. By default, the timer apparition duration is set to 1 second. /// </summary> /// <param name="Preset">Use a specific Drunk using Drunk_Preset.</param> public static void Drunk_ON(Drunk_Preset Preset) { if (CurrentCamera == null) { CurrentCamera = Camera.main; } if (CamDrunk != null) { return; } if (Drunk_Switch) { return; } CamDrunk = CurrentCamera.gameObject.AddComponent <CameraPlay_Drunk>() as CameraPlay_Drunk; if (CamDrunk.CamTurnOff) { return; } Drunk_Switch = true; CamDrunk.Duration = 1; CamDrunk.Preset = (CameraPlay_Drunk.Drunk_Preset)Preset; }
// Update is called once per frame void Update() { #if UNITY_EDITOR if (Application.isPlaying != true) { SCShader = Shader.Find("CameraPlay/Drunk"); } #endif if (PresetMemo != Preset) { PresetMemo = Preset; float[] P1 = new float[10] { 1f, 1f, 0f, 0f, 1f, 1f, 0f, 0f, 0f, 0f }; // Default float[] P2 = new float[10] { 1f, 1f, 0f, 0.3f, 1f, 1.67f, 0f, 0f, 0f, 0f }; // Drunk A lot float[] P3 = new float[10] { 1.74f, 0.65f, 0.6f, 0.15f, 1f, -0.65f, -0.34f, 0f, 0f, 0f }; // Drunk Volka float[] P4 = new float[10] { 1.79f, 1f, 0.125f, 0.35f, 1f, 1.38f, -0.15f, -0.25f, 0.0f, -0.345f }; // Drunk Poison float[] P5 = new float[10] { 1.08f, 1f, 0f, 0.35f, 1f, 1.38f, -0.14f, -0.214f, -0.102f, 0.99f }; // Drunk Yellow float[] P6 = new float[10] { 1.08f, 0.104f, 0f, 0.25f, 1f, -2f, 0.33f, -0.326f, -0.195f, -0.111f }; // Drunk Dark float[] P7 = new float[10] { 2.02f, 0.104f, 0.103f, 0.314f, 1f, 1.75f, 0.6f, -0.186f, 0.215f, 0.44f }; // Drunk Cold float[] P8 = new float[10] { 0.9f, 0.5f, 0.25f, 0.4f, 1f, 1.75f, 0.5f, 0.375f, 0.100f, -1f }; // Drunk Burn float[] P9 = new float[10] { 1.41f, 0.33f, 0.155f, 0.1f, 1f, 1.35f, 1.5f, 0.038f, 0f, 0f }; // Drunk Blood float[] P10 = new float[10] { 0.52f, 1f, 0.272f, 1f, 1f, 2f, 0.5f, 0.039f, 0.2f, 0f }; // Drunk To Much float[] PR = new float[10]; if (Preset == Drunk_Preset.Default) { PR = P1; } if (Preset == Drunk_Preset.Drunk_A_Lot) { PR = P2; } if (Preset == Drunk_Preset.Drunk_Vodka) { PR = P3; } if (Preset == Drunk_Preset.Drunk_Poison) { PR = P4; } if (Preset == Drunk_Preset.Drunk_Yellow) { PR = P5; } if (Preset == Drunk_Preset.Drunk_Dark) { PR = P6; } if (Preset == Drunk_Preset.Drunk_Cold) { PR = P7; } if (Preset == Drunk_Preset.Drunk_Burn) { PR = P8; } if (Preset == Drunk_Preset.Drunk_Blood) { PR = P9; } if (Preset == Drunk_Preset.Drunk_To_Much) { PR = P10; } Speed = PR[0]; Wavy = PR[1]; Distortion = PR[2]; DistortionWave = PR[3]; Fade = PR[4]; ColoredSaturate = PR[5]; ColoredChange = PR[6]; ChangeRed = PR[7]; ChangeGreen = PR[8]; ChangeBlue = PR[9]; } if (CamTurnOff == false) { Timer += Time.deltaTime * (1 / Duration); if (Timer > 1f) { Timer = 1; } flashy = Timer; } if (CamTurnOff) { Timer -= Time.deltaTime * (1 / Duration); flashy = Timer; if (Timer < 0) { CameraPlay.Drunk_Switch = false; Object.Destroy(this); } } }
/// <summary> /// 醉酒效果 /// </summary> /// <param name="Preset"></param> /// <param name="time"></param> public void Drunk_ON(Drunk_Preset Preset = Drunk_Preset.Default, float time = 1.0f) { CameraPlay.Drunk_ON(Preset, time); }