123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.PostProcessing;
- using UnityEngine.UI;
- using UnityEngine.SceneManagement;
- public interface MatPropertySet {}
- public class MatPropertySetBase : MatPropertySet{
- public Color ColorTint;
- public float BaseSmoothnessMultiplier;
- public float BaseMetallic;
- }
- public class SciFiTheme {
- public static int NUM_BASEMAT = 3;
- public MatPropertySetBase[] MatBaseProperties = new MatPropertySetBase[NUM_BASEMAT];
- public Color DecalColor;
- }
- /*
- *
- * ThemeManager class
- *
- */
- public class ThemeManager : MonoBehaviour {
- public Material[] BaseMaterial_01 = new Material[4];
- public Material[] BaseMaterial_02 = new Material[2];
- public Material[] BaseMaterial_03 = new Material[1];
- public Material DecalMaterial;
- public PostProcessingProfile[] PPProfiles;
- private SciFiTheme[] scifiThemesArray = new SciFiTheme[4];
- private Light [] streetLights;
- private Camera mainCam;
- void OnEnable () {
-
- mainCam = Camera.main;
- Initialze();
- //streetLights ;
- }
- public void setTheme(int themeId) {
- MatPropertySetBase baseSet = scifiThemesArray[themeId].MatBaseProperties[0];
- for (int j = 0; j < BaseMaterial_01.Length; j++) {
- BaseMaterial_01[j].SetColor("_ColorTint",baseSet.ColorTint);
- BaseMaterial_01[j].SetFloat("_Metallic", baseSet.BaseMetallic);
- BaseMaterial_01[j].SetFloat("_SmoothnessMultiplier", baseSet.BaseSmoothnessMultiplier);
- }
- baseSet = scifiThemesArray[themeId].MatBaseProperties[1];
- for (int j = 0; j < BaseMaterial_02.Length; j++) {
- BaseMaterial_02[j].SetColor("_ColorTint",baseSet.ColorTint);
- BaseMaterial_02[j].SetFloat("_Metallic", baseSet.BaseMetallic);
- BaseMaterial_02[j].SetFloat("_SmoothnessMultiplier", baseSet.BaseSmoothnessMultiplier);
- }
-
- baseSet = scifiThemesArray[themeId].MatBaseProperties[2];
- for (int j = 0; j < BaseMaterial_03.Length; j++) {
- BaseMaterial_03[j].SetColor("_ColorTint",baseSet.ColorTint);
- BaseMaterial_03[j].SetFloat("_Metallic", baseSet.BaseMetallic);
- BaseMaterial_03[j].SetFloat("_SmoothnessMultiplier", baseSet.BaseSmoothnessMultiplier);
- }
- DecalMaterial.SetColor("_Color", scifiThemesArray [themeId].DecalColor);
-
- }
- public void setPostProcessingProfile(int ppId) {
- PostProcessingBehaviour ppb = mainCam.GetComponent<PostProcessingBehaviour>();
- ppb.profile = PPProfiles[ppId];
- }
- /*
- *
- * Initializing
- *
- */
- void Initialze () {
- InitializeTheme_1();
- InitializeTheme_2();
- InitializeTheme_3();
- InitializeTheme_4();
- }
- void InitializeTheme_1 () {
- SciFiTheme scifiTheme = new SciFiTheme();
- // Color 1
- MatPropertySetBase mpsb_1 = new MatPropertySetBase();
- mpsb_1.ColorTint = ColorConverter.HexToColor("CECECE");
- mpsb_1.BaseMetallic = 0f;
- mpsb_1.BaseSmoothnessMultiplier = 1f;
- scifiTheme.MatBaseProperties[0] = mpsb_1;
- // Color 2
- MatPropertySetBase mpsb_2 = new MatPropertySetBase();
- mpsb_2.ColorTint = ColorConverter.HexToColor("8C8C8C");
- mpsb_2.BaseMetallic = 0f;
- mpsb_2.BaseSmoothnessMultiplier = 1f;
- scifiTheme.MatBaseProperties[1] = mpsb_2;
- // Color 3
- MatPropertySetBase mpsb_3 = new MatPropertySetBase();
- mpsb_3.ColorTint = ColorConverter.HexToColor("FF9B37");
- mpsb_3.BaseMetallic = 0f;
- mpsb_3.BaseSmoothnessMultiplier = 1f;
- scifiTheme.MatBaseProperties[2] = mpsb_3;
- scifiTheme.DecalColor = ColorConverter.HexToColor ("636363");
- scifiThemesArray[0] = scifiTheme;
- }
- void InitializeTheme_2 () {
- SciFiTheme scifiTheme = new SciFiTheme();
- // Color 1
- MatPropertySetBase mpsb_1 = new MatPropertySetBase();
- mpsb_1.ColorTint = ColorConverter.HexToColor("CECECE");
- mpsb_1.BaseMetallic = 1f;
- mpsb_1.BaseSmoothnessMultiplier = 1f;
- scifiTheme.MatBaseProperties[0] = mpsb_1;
- // Color 2
- MatPropertySetBase mpsb_2 = new MatPropertySetBase();
- mpsb_2.ColorTint = ColorConverter.HexToColor("8C8C8C");
- mpsb_2.BaseMetallic = 1f;
- mpsb_2.BaseSmoothnessMultiplier = 1f;
- scifiTheme.MatBaseProperties[1] = mpsb_2;
- // Color 3
- MatPropertySetBase mpsb_3 = new MatPropertySetBase();
- mpsb_3.ColorTint = ColorConverter.HexToColor("FF9B37");
- mpsb_3.BaseMetallic = 0f;
- mpsb_3.BaseSmoothnessMultiplier = 1f;
- scifiTheme.MatBaseProperties[2] = mpsb_3;
- scifiTheme.DecalColor = ColorConverter.HexToColor ("636363");
- scifiThemesArray[1] = scifiTheme;
- }
- void InitializeTheme_3 () {
- SciFiTheme scifiTheme = new SciFiTheme();
- // Color 1
- MatPropertySetBase mpsb_1 = new MatPropertySetBase();
- mpsb_1.ColorTint = ColorConverter.HexToColor("FFE6C1");
- mpsb_1.BaseMetallic = 0f;
- mpsb_1.BaseSmoothnessMultiplier = 1f;
- scifiTheme.MatBaseProperties[0] = mpsb_1;
- // Color 2
- MatPropertySetBase mpsb_2 = new MatPropertySetBase();
- mpsb_2.ColorTint = ColorConverter.HexToColor("93A3AE");
- mpsb_2.BaseMetallic = 0f;
- mpsb_2.BaseSmoothnessMultiplier = 1f;
- scifiTheme.MatBaseProperties[1] = mpsb_2;
- // Color 3
- MatPropertySetBase mpsb_3 = new MatPropertySetBase();
- mpsb_3.ColorTint = ColorConverter.HexToColor("FF9B37");
- mpsb_3.BaseMetallic = 0f;
- mpsb_3.BaseSmoothnessMultiplier = 1f;
- scifiTheme.MatBaseProperties[2] = mpsb_3;
- scifiTheme.DecalColor = ColorConverter.HexToColor ("2881B2");
- scifiThemesArray[2] = scifiTheme;
- }
- void InitializeTheme_4 () {
- SciFiTheme scifiTheme = new SciFiTheme();
- // Color 1
- MatPropertySetBase mpsb_1 = new MatPropertySetBase();
- mpsb_1.ColorTint = ColorConverter.HexToColor("77979E");
- mpsb_1.BaseMetallic = 0f;
- mpsb_1.BaseSmoothnessMultiplier = 1f;
- scifiTheme.MatBaseProperties[0] = mpsb_1;
- // Color 2
- MatPropertySetBase mpsb_2 = new MatPropertySetBase();
- mpsb_2.ColorTint = ColorConverter.HexToColor("D0C9A5");
- mpsb_2.BaseMetallic = 0f;
- mpsb_2.BaseSmoothnessMultiplier = 1f;
- scifiTheme.MatBaseProperties[1] = mpsb_2;
- // Color 3
- MatPropertySetBase mpsb_3 = new MatPropertySetBase();
- mpsb_3.ColorTint = ColorConverter.HexToColor("FF9B37");
- mpsb_3.BaseMetallic = 0f;
- mpsb_3.BaseSmoothnessMultiplier = 1f;
- scifiTheme.MatBaseProperties[2] = mpsb_3;
- scifiTheme.DecalColor = ColorConverter.HexToColor ("DDDDDD");
- scifiThemesArray[3] = scifiTheme;
- }
-
- }
|