public static void SetOpacityToGameObject(float opacity, GameObject obj) { CFontRenderer font = obj.GetComponent <CFontRenderer>(); if (font != null) { font.mColor.a = opacity; if (opacity <= 0.0f) { font.setEnabled(false); } else { font.setEnabled(true); } } CDiffuseRenderer diffuse = obj.GetComponent <CDiffuseRenderer>(); if (diffuse != null) { Color clr = diffuse.GetMaterial().GetColor(); clr.a = opacity; diffuse.GetMaterial().SetColor(clr); if (opacity <= 0.0f) { diffuse.setEnabled(false); } else { diffuse.setEnabled(true); } } }
public void OnStart() { mSound = gameObject.RequireComponent <CSound>(); // scale should be 0.221f, 0124f menuPointer = GameObject.GetGameObjectByName(Common.prefix + menuPointerName); menuPointer.transform.SetParent(null); Common.SetOpacityToGameObject(0.0f, menuPointer); menuPointerInitPos = new Vector3(-2.75f, 1.23f, -0.05f); menuPointer.transform.SetPosition(menuPointerInitPos); screenImageMesh = gameObject.RequireComponent <CDiffuseRenderer>(); screenImageMesh.GetMaterial().SetColor(new Color(1.0f, 1.0f, 1.0f, 0.0f)); optionsPos = new Vector3(0.0f, -90.0f, 0.0f); // Position to look at options menu pauseOptions = Common.GetPauseOptionsScreen().RequireComponent <CDiffuseRenderer>(); Common.GetPauseOptionsScreen().transform.SetPosition(optionsPos); pauseOptions.setEnabled(false); GameObject pausePointerObj = Common.GetChildByName(pauseOptions.gameObject, "menuPointer"); pauseMenuPointer = pausePointerObj.RequireComponent <CDiffuseRenderer>(); pauseMenuPointer.setEnabled(false); Common.GetMenuFullscreenX().setEnabled(false); // Init all options stuff to invisible Common.GetMenuMuteX().setEnabled(false); Common.GetMenuVolumeFont().setEnabled(false); fadeScreen = GameObject.GetGameObjectByName(Common.prefix + fadeScreenName); Common.SetOpacityToGameObject(fadeOpacity, fadeScreen); // Start with full black optionsFadeScreen = GameObject.GetGameObjectByName(Common.prefix + optionsFadeScreenName); Common.SetOpacityToGameObject(fadeOpacity, optionsFadeScreen); mLoadingFirstTime = true; mPrevMainMenuState = -1; mMainMenuState = -1; mPointerPosition = new List <Vector2>(); // 0.227, 0.115 mPointerPosition.Add(new Vector2(-0.0753f, 0.028f)); mPointerPosition.Add(new Vector2(-0.0753f, 0.0233f)); mPointerPosition.Add(new Vector2(-0.0753f, 0.0186f)); mPointerPosition.Add(new Vector2(-0.0753f, 0.0139f)); mPointerPosition.Add(new Vector2(-0.0753f, -0.0051f)); // wrong mPointerPosForMainMenuConfirmation = new List <Vector2>(); mPointerPosForMainMenuConfirmation.Add(new Vector2(-0.0693f, 0.0043f)); mPointerPosForMainMenuConfirmation.Add(new Vector2(-0.0693f, -0.0004f)); mPointerPosForQuitConfirmation = new List <Vector2>(); mPointerPosForQuitConfirmation.Add(new Vector2(-0.0693f, -0.0145f)); mPointerPosForQuitConfirmation.Add(new Vector2(-0.0693f, -0.0193f)); mCurrPointerPos = mPointerPosition[0]; // When going to How To Play / Options, change camera to Ortho, at (0,0,0), with 0 rotation // Bring up the ortho image }
// The trigger point when screen is black, and state is changed void TriggerOnStartForMainMenu() { fadeState = 2; // Fade transparent mLoadingFirstTime = false; Common.SetOpacityToGameObject(0.0f, menuPointer); Common.GetMenuFullscreenX().setEnabled(false); Common.GetMenuMuteX().setEnabled(false); Common.GetMenuVolumeFont().setEnabled(false); switch (mMainMenuState) { case (int)PAUSE_STATE.MAIN: if (mPrevMainMenuState == (int)PAUSE_STATE.OPTIONS) { Common.isOptions = false; Common.GetStealthPlayerCamera().RequireComponent <CCamera>().mActiveProj = CCamera.CamProj.PERSP; Common.GetStealthPlayerCamera().transform.Rotate(mCamSavedDir); // Set back to saved dir pauseOptions.setEnabled(false); pauseMenuPointer.setEnabled(false); } // Set pointer back to where it was clicked into menuPointerIndex = (mPrevMainMenuState == -1) ? 0 : mPrevMainMenuState; mPrevMainMenuState = 0; screenImageMesh.GetMaterial().SetTexture("pauseMenu_new.png"); Common.SetOpacityToGameObject(1.0f, menuPointer); SetPointerPos(mPointerPosition[menuPointerIndex]); break; case (int)PAUSE_STATE.RESUME: // Unpause the game, make the screens disappear Common.isPaused = false; break; case (int)PAUSE_STATE.HOWTOPLAY: if (mPrevMainMenuState != mMainMenuState) // from main menu { mHowToPlayState = 0; } else // from page 1 { mHowToPlayState = (mHowToPlayState == 0) ? 1 : 0; } string pngFile = (mHowToPlayState == 0) ? "howtoplay_Stealth.png" : "howtoplay_Surveillance.png"; screenImageMesh.GetMaterial().SetTexture(pngFile); break; case (int)PAUSE_STATE.OPTIONS: // Fly camera to 0,0,0, to look at options menu Common.isOptions = true; // This prevents first person camera from updating mCamSavedDir = Common.GetStealthPlayerCamera().transform.GetRotation(); Common.GetStealthPlayerCamera().transform.Rotate(Vector3.Zero); Vector3 camPos = optionsPos; camPos.Z -= 1.0f; Common.GetStealthPlayerCamera().transform.SetPosition(camPos); Common.GetStealthPlayerCamera().RequireComponent <CCamera>().mActiveProj = CCamera.CamProj.ORTHO; pauseOptions.setEnabled(true); pauseMenuPointer.setEnabled(true); mOptionsPointerIndex = 0; MainMenuScript.PositionOptionsPointer(pauseMenuPointer.gameObject, mOptionsPointerIndex, optionsPos); Common.GetMenuFullscreenX().setEnabled(Engine.getInstance().GetGameWnd().IsFullScreen()); Common.GetMenuMuteX().setEnabled(AudioManager.getInstance().GetMuteSound()); Common.GetMenuVolumeFont().setEnabled(true); MainMenuScript.SetVolumeText(); screenImageMesh.GetMaterial().SetTexture("Menu_options.png"); break; case (int)PAUSE_STATE.MAIN_MENU: if (mToMainMenuState == 0) { Common.SetOpacityToGameObject(1.0f, menuPointer); screenImageMesh.GetMaterial().SetTexture("pauseMenu_MainMenu_new.png"); // Position the pointer mIsConfirmationYes = false; PositionMenuPointerMainMenuForConfirmation(); // default at no } else // Faded to black after YES confirmation, then load main menu level { Common.Reset(); Map.LoadOnlyMap("Assets/Levels/mainMenu1.mocha"); } break; case (int)PAUSE_STATE.QUIT: Common.SetOpacityToGameObject(1.0f, menuPointer); screenImageMesh.GetMaterial().SetTexture("pauseMenu_Quit_new.png"); // Position the pointer mIsConfirmationYes = false; PositionMenuPointerQuitForConfirmation(); // default at no break; } }