Example #1
0
    void Awake()
    {
        s_Instance = this;

        if (m_Controller.m_TargetCam == null)
        {
            m_Controller.m_TargetCam = CamMediator.MainCamera;
        }

        LoadControlType();
        ChangeNormalMode();

        //m_Controller.AfterAllModifier += SyncNearCam;
    }
Example #2
0
    void Start()
    {
        PECameraMan.ApplySysSetting();
        //CameraController oldCamCtrl = GameObject.FindObjectOfType<CameraController>();
        //if (null != oldCamCtrl)
        //{
        //    FreeCamera freeCamera = oldCamCtrl.GetComponent<FreeCamera>();
        //    if (null != freeCamera)
        //    {
        //        Destroy(freeCamera);
        //    }
        //    Destroy(oldCamCtrl);
        //}

        AddTerrainConstraint();

//		UIOnScrollMouse.OnScroll += HandleUIOnScroll;
//		UIOnMouseMove.MouseOnGui += HandleMouseOnUI;
//		UIOnMouseMove.MouseOpGui += HandleMouseOpUI;
    }
    public void ApplyControl()
    {
        XmlDocument xmlDoc = new XmlDocument();

        try{
            using (FileStream fs = new FileStream(mFilepath, FileMode.Open, FileAccess.Read, FileShare.Read)) {
                xmlDoc.Load(fs);
            }
        }catch (Exception e) {
            GameLog.HandleIOException(e, GameLog.EIOFileType.Settings);
            xmlDoc = new XmlDocument();
        }

        XmlElement findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("mMMOControlType");

        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("mMMOControlType");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", mMMOControlType.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("UseController");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("UseController");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", UseController.ToString());


        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("FirstPersonCtrl");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("FirstPersonCtrl");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", FirstPersonCtrl.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("CameraSensitivity");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("CameraSensitivity");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", cameraSensitivity.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("HoldGunCameraSensitivity");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("HoldGunCameraSensitivity");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", holdGunCameraSensitivity.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("CameraFov");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("CameraFov");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", CameraFov.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("CameraHorizontalInverse");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("CameraHorizontalInverse");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", CameraHorizontalInverse.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("CameraVerticalInverse");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("CameraVerticalInverse");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", CameraVerticalInverse.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("CamInertia");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("CamInertia");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", CamInertia.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("DriveCamInertia");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("DriveCamInertia");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", DriveCamInertia.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("AttackWhithMouseDir");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("AttackWhithMouseDir");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", AttackWhithMouseDir.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("Tutorialed");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("Tutorialed");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", Tutorialed.ToString());

        PECameraMan.ApplySysSetting();

        try{
            using (FileStream fs = new FileStream(mFilepath, FileMode.Create, FileAccess.Write, FileShare.None)) {
                xmlDoc.Save(fs);
            }
        }catch (Exception e) {
            GameLog.HandleIOException(e, GameLog.EIOFileType.Settings);
        }
    }
    public void ApplyMisc()
    {
        XmlDocument xmlDoc = new XmlDocument();

        try{
            using (FileStream fs = new FileStream(mFilepath, FileMode.Open, FileAccess.Read, FileShare.Read)) {
                xmlDoc.Load(fs);
            }
        }catch (Exception e) {
            GameLog.HandleIOException(e, GameLog.EIOFileType.Settings);
            xmlDoc = new XmlDocument();
        }

        XmlElement findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("HideHeadgear");

        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("HideHeadgear");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", HideHeadgear.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("HPNumbers");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("HPNumbers");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", HPNumbers.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("ClipCursor");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("ClipCursor");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", ClipCursor.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("FixBlurryFont");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("FixBlurryFont");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", FixBlurryFont.ToString());
        if (GameUI.Instance != null)
        {
            UILabel[] labels = GameUI.Instance.gameObject.GetComponentsInChildren <UILabel>(true);
            for (int i = 0; i < labels.Length; i++)
            {
                labels[i].MakePixelPerfect();
            }
        }

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("AndyGuidance");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("AndyGuidance");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", AndyGuidance.ToString());


        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("MouseStateTip");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("MouseStateTip");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", MouseStateTip.ToString());
        //#if UNITY_STANDALONE_WIN
        //        if(ClipCursor)
        //            CursorCliping.Lock();
        //        else
        //            CursorCliping.Unlock();
        //#endif

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("HidePlayerOverHeadInfo");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("HidePlayerOverHeadInfo");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", HidePlayerOverHeadInfo.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("ApplyMonsterIK");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("ApplyMonsterIK");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", ApplyMonsterIK.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("VoxelCache");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("VoxelCache");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", VoxelCacheEnabled.ToString());

        PECameraMan.ApplySysSetting();

        try{
            using (FileStream fs = new FileStream(mFilepath, FileMode.Create, FileAccess.Write, FileShare.None)) {
                xmlDoc.Save(fs);
            }
        }catch (Exception e) {
            GameLog.HandleIOException(e, GameLog.EIOFileType.Settings);
        }
    }
    public void ApplyVideo()
    {
        XmlDocument xmlDoc = new XmlDocument();

        try{
            using (FileStream fs = new FileStream(mFilepath, FileMode.Open, FileAccess.Read, FileShare.Read)) {
                xmlDoc.Load(fs);
            }
        }catch (Exception e) {
            GameLog.HandleIOException(e, GameLog.EIOFileType.Settings);
            xmlDoc = new XmlDocument();
        }

        XmlElement findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("QualityLevel");

        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("QualityLevel");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("Index", mQualityLevel.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("GLSetting");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("GLSetting");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", GLSetting);

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("LightCount");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("LightCount");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("Index", mLightCount.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("AnisotropicFiltering");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("AnisotropicFiltering");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("Index", mAnisotropicFiltering.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("AntiAliasing");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("AntiAliasing");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("Index", mAntiAliasing.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("ShadowProjection");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("ShadowProjection");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("Index", mShadowProjection.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("ShadowDistance");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("ShadowDistance");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("Index", mShadowDistance.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("ShadowCascades");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("ShadowCascades");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("Index", mShadowCascades.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("mWaterReflection");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("mWaterReflection");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("Index", mWaterReflection.ToString());


        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("WaterRefraction");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("WaterRefraction");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("Index", WaterRefraction.ToString());


        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("WaterDepth");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("WaterDepth");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("Index", WaterDepth.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("GrassDensity");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("GrassDensity");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("Index", GrassDensity.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("GrassLod");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("GrassLod");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("Index", ((int)mGrassLod).ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("Terrain");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("Terrain");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("Index", TerrainLevel.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("RandomTerrain");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("RandomTerrain");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("Index", RandomTerrainLevel.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("DepthBlur");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("DepthBlur");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", mDepthBlur.ToString());


        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("SSAO");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("SSAO");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", mSSAO.ToString());


        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("SyncCount");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("SyncCount");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("value", SyncCount.ToString());
        ResetVSync();

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("Tree");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("Tree");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("Index", mTreeLevel.ToString());

//		GrassMgr.RefreshSettings(GrassDensity, (int)GrassLod);

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("HDREffect");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("HDREffect");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        findNode.SetAttribute("Index", HDREffect.ToString());

        findNode = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("FastLightingMode");
        if (null == findNode)
        {
            findNode = xmlDoc.CreateElement("FastLightingMode");
            xmlDoc.DocumentElement.AppendChild(findNode);
        }
        //mFastLightingMode = true;
        findNode.SetAttribute("Index", mFastLightingMode.ToString());

        switch (mQualityLevel)
        {
        case 0:
            QualitySettings.SetQualityLevel(0);
#if Win32Ver
            TerrainLevel = 0;
#else
            TerrainLevel = 1;             //increase from 128M to 256M for bug 502857
#endif
            RandomTerrainLevel = 0;
            mTreeLevel         = 1;
            HDREffect          = false;
            break;

        case 1:
            QualitySettings.SetQualityLevel(1);
            TerrainLevel       = 1;       //increase from 128M to 256M for bug 502857
            RandomTerrainLevel = 0;
            mTreeLevel         = 1;
            HDREffect          = false;
            break;

        case 2:
            QualitySettings.SetQualityLevel(2);
            TerrainLevel       = 1;
            RandomTerrainLevel = 1;
            mTreeLevel         = 1;
            HDREffect          = false;
            break;

        case 3:
            QualitySettings.SetQualityLevel(3);
            TerrainLevel       = 2;
            RandomTerrainLevel = 1;
            mTreeLevel         = 3;
            HDREffect          = true;
            break;

        case 4:
            QualitySettings.SetQualityLevel(4);
            TerrainLevel       = 3;
            RandomTerrainLevel = 2;
            mTreeLevel         = 4;
            HDREffect          = true;
            break;

        case 5:
            QualitySettings.SetQualityLevel(5);
            TerrainLevel       = 3;
            RandomTerrainLevel = 2;
            mTreeLevel         = 5;
            HDREffect          = true;
            break;

        case 6:
            QualitySettings.SetQualityLevel(3);                 // for Ubuntu with AMD card, larger than 3 will cause game select GL_FBCONFIG 47/55 which can not render defered-render cam
            QualitySettings.pixelLightCount = mLightCount;
            switch (mAnisotropicFiltering)
            {
            case 0:
                QualitySettings.anisotropicFiltering = AnisotropicFiltering.Disable;
                break;

            case 1:
                QualitySettings.anisotropicFiltering = AnisotropicFiltering.Enable;
                break;

            case 2:
                QualitySettings.anisotropicFiltering = AnisotropicFiltering.ForceEnable;
                break;
            }

            QualitySettings.antiAliasing = (mAntiAliasing > 0)? 4 : 0;

            QualitySettings.shadowProjection = (mShadowProjection == 1)? ShadowProjection.StableFit :ShadowProjection.CloseFit;

            switch (mShadowDistance)
            {
            case 0:
                QualitySettings.shadowDistance = 1;
                break;

            case 1:
                QualitySettings.shadowDistance = 50;
                break;

            case 2:
                QualitySettings.shadowDistance = 100;
                break;

            case 3:
                QualitySettings.shadowDistance = 200;
                break;

            case 4:
                QualitySettings.shadowDistance = 400;
                break;
            }

            switch (mShadowCascades)
            {
            case 0:
                QualitySettings.shadowCascades = 0;
                break;

            case 1:
                QualitySettings.shadowCascades = 2;
                break;

            case 2:
                QualitySettings.shadowCascades = 4;
                break;
            }
            break;
        }

        PeGrassSystem.Refresh(GrassDensity, (int)GrassLod);
        PECameraMan.ApplySysSetting();

        try{
            using (FileStream fs = new FileStream(mFilepath, FileMode.Create, FileAccess.Write, FileShare.None)) {
                xmlDoc.Save(fs);
            }
        }catch (Exception e) {
            GameLog.HandleIOException(e, GameLog.EIOFileType.Settings);
        }
    }