public void Play(int EntityID = -1) { if (!bInit) { return; } if (TargetType == MaterialOpRunType.EntityID) { //增加材质球只在高配以上起效,人物的skinned太耗了. if (ImageSetting.GetData().currEffectQuality < EffectQuality.QUALITY_GOOD) { return; } } UpdateRendersFromEntityID(EntityID); if (!bPlay) { bPlay = true; if (DelayTime > 0.03f) { GameUtil.StartCoroutineHelper(this, WaitForPlay()); } else { PlayerImpl(); } } }
private void PlayImpl(int mask) { if (!bInit) { return; } AllEffectCount++; //if (!bWaitForComplete && !isLoop && DebugMode) //{ // GameUtil.StartCoroutineHelper(this,WaitForComplete()); // bWaitForComplete = true; //} //设备丢失了,不播放 if (Initialize.isDeviceLost) { return; } if (/*DebugMode ||*/ ForceBestQuality) { PlayModlues(BestObj, BestModules, isEnemy, mask); PlayModlues(HighObj, HighModlues, isEnemy, mask); PlayModlues(GoodObj, GoodModlues, isEnemy, mask); PlayModlues(FastestObj, FastestModlues, isEnemy, mask); return; } realyQuality = ImageSetting.GetData().currEffectQuality; //等级无效,不播放 if (realyQuality == EffectQuality.Invalid) { return; } ApplyMask(mask); if (realyQuality == EffectQuality.QUALITY_FASTEST) { PlayModlues(FastestObj, FastestModlues, isEnemy, mask); } else if (realyQuality == EffectQuality.QUALITY_MEDIUM) { PlayModlues(GoodObj, GoodModlues, isEnemy, mask); PlayModlues(FastestObj, FastestModlues, isEnemy, mask); } else if (realyQuality == EffectQuality.QUALITY_GOOD) { PlayModlues(HighObj, HighModlues, isEnemy, mask); PlayModlues(GoodObj, GoodModlues, isEnemy, mask); PlayModlues(FastestObj, FastestModlues, isEnemy, mask); } else if (realyQuality == EffectQuality.QUALITY_BEST) { PlayModlues(BestObj, BestModules, isEnemy, mask); PlayModlues(HighObj, HighModlues, isEnemy, mask); PlayModlues(GoodObj, GoodModlues, isEnemy, mask); PlayModlues(FastestObj, FastestModlues, isEnemy, mask); } }
private void ApplyMask(int mask) { if (mask == 0) { return; } if ((mask & (int)EffectNodeMask.Mask_DownLevelQuality) != 0) { int quality = (int)ImageSetting.GetData().currEffectQuality; int min = (int)EffectQuality.QUALITY_FASTEST; int max = (int)EffectQuality.QUALITY_BEST; quality--; quality = Mathf.Clamp(quality, min, max); realyQuality = (EffectQuality)quality; } if ((mask & (int)EffectNodeMask.Mask_UpLevelQuality) != 0) { int quality = (int)ImageSetting.GetData().currEffectQuality; int min = (int)EffectQuality.QUALITY_FASTEST; int max = (int)EffectQuality.QUALITY_BEST; quality++; quality = Mathf.Clamp(quality, min, max); realyQuality = (EffectQuality)quality; } }
//自动调整按钮 //public void OnAutoSettingBtnClick() //{ // ImageSetting.AutoAdjustQuality = AutoSetting.isOn ? 1 : 0; // if (AutoSetting.isOn) // { // Shield.gameObject.SetActive(true); // ImageSetting.AdjustLogic(GameFrameManager.FpsMonitor.AvgFps,true); // } // else // Shield.gameObject.SetActive(false); //} public void ResetGameBrightessClick() { ModifyGameBrightness.interactable = false; ModifyGameBrightness.value = 1; ModifyGameBrightness.interactable = true; ImageSetting.GetData().currGameBrightness = 1; ImageEffects.ImageEffectManager.API_SetImagEffectParam <ImageEffects.ModifyGameBrightness>(ImageEffects.ModifyGameBrightness.ModifyGameBrightnessKey, ImageSetting.GetData().currGameBrightness); }
void Awake() { ImageSetting.GetData().currEffectQuality = EffectQuality.QUALITY_BEST; Initialize.mainCam = Camera.main; Initialize.mainCam.nearClipPlane = 0.1f; Initialize.mainCam.farClipPlane = Mathf.Min(Initialize.mainCam.farClipPlane, 2000); }
public void OnModifyGameBrightessValueChanged(float value) { if (!ModifyGameBrightness.interactable) { return; } ImageSetting.GetData().currGameBrightness = value; ImageEffects.ImageEffectManager.API_SetImagEffectParam <ImageEffects.ModifyGameBrightness>(ImageEffects.ModifyGameBrightness.ModifyGameBrightnessKey, ImageSetting.GetData().currGameBrightness); }
public void OnAdvanceImangeEffectClick() { if (!AdvanceImangeEffect.interactable) { return; } ImageSetting.GetData().AdvanceImageEffectEnabled = AdvanceImangeEffect.isOn ? 1 : 0; ImageEffects.ImageEffectManager.AdvanceImangeEffectEnabled = ImageSetting.GetData().AdvanceImageEffectEnabled == 1; SetOthersImageSetting(); }
private void SetOthersImageSetting() { SSAO.interactable = AdvanceImangeEffect.isOn; SSAO.isOn = ImageSetting.GetData().SSAOEnabled > 0 && AdvanceImangeEffect.isOn; BloomAndFlares.interactable = AdvanceImangeEffect.isOn; BloomAndFlares.isOn = ImageSetting.GetData().BloomAndFlaresEnabled > 0 && AdvanceImangeEffect.isOn; FXAA.interactable = AdvanceImangeEffect.isOn; FXAA.isOn = ImageSetting.GetData().FXAAEnabled > 0 && AdvanceImangeEffect.isOn; }
IEnumerator DelayCheckRenderingQuality() { { yield return(null); if (ImageSetting.GetData().currSceneRenderingQuality <= SceneRenderingQuality.Fastest) { FullScreenMovieTexture.Stop(); } } }
public override bool Init(IUIWnd wnd) { m_materialEffectParam = new UEffectMaterialParam(UEffectMaterialType.EMT_Blur, SniperscopeImage, true); if (UEffectManager.Instance.CreateEffect(UEffectType.UET_EffectMaterial, ref m_materialEffectParam)) { (m_materialEffectParam as UEffectMaterialParam).ReturnEffectMaterial.SetTexture("_AlphaTex", SniperscopeMaskSprite); (m_materialEffectParam as UEffectMaterialParam).ReturnEffectMaterial.SetColor("_TintColor", new Color(0, 0, 0, 0.86f)); (m_materialEffectParam as UEffectMaterialParam).ReturnEffectMaterial.SetFloat("_Vibrancy", 0f); onSceneRenderingQualityChanged(ImageSetting.GetData().currSceneRenderingQuality, SceneRenderingQuality.MAX); } HideSniperscope(); return(base.Init(wnd)); }
void NotSupportBestImangeEffect_ChooseDownResolution() { //WaitingSelect = false; //PerformanceCheckUI_Reslut uiInstance = PerformanceCheckManager.Instance.flowShareData.ui_Reslut; //uiInstance.tips.text = "测试完成,您可以在<color=red>登入游戏后按[ESC]->视频设置</color>中修改您的选项。正在进入游戏....."; //uiInstance.ConfigOneBtn.onClick.RemoveAllListeners(); //uiInstance.ConfigTwoBtn.onClick.RemoveAllListeners(); //uiInstance.ConfigTwoRoot.SetActive(false); //uiInstance.ConfigOneRoot.SetActive(false); ImageSetting.GetData().AdvanceImageEffectEnabled = 1; ImageSetting.SetResolution(TargetResolution, false); ImageSetting.Clear(); EndPerformanceCheck(); }
public SceneRenderingQuality GetWaterMode() { if (!WaterRefrctionObjectShader) { return(SceneRenderingQuality.Fastest); } if (hardWateSupportQuality < ImageSetting.GetData().currSceneRenderingQuality) { return(hardWateSupportQuality); } else { return(ImageSetting.GetData().currSceneRenderingQuality); } }
public void OnBloomAndFlaresClick() { if (!BloomAndFlares.interactable) { return; } ImageSetting.GetData().BloomAndFlaresEnabled = BloomAndFlares.isOn ? 1 : 0; if (BloomAndFlares.isOn) { ImageEffects.ImageEffectManager.API_EnableImageEffect <ImageEffects.BloomAndFlares>(); } else { ImageEffects.ImageEffectManager.API_DisableImageEffect <ImageEffects.BloomAndFlares>(); } }
public void OnSSAOClick() { if (!SSAO.interactable) { return; } ImageSetting.GetData().SSAOEnabled = SSAO.isOn ? 1 : 0; if (SSAO.isOn) { ImageEffects.ImageEffectManager.API_EnableImageEffect <ImageEffects.SSAOPro>(); } else { ImageEffects.ImageEffectManager.API_DisableImageEffect <ImageEffects.SSAOPro>(); } }
public void OnFXAAClick() { if (!FXAA.interactable) { return; } ImageSetting.GetData().FXAAEnabled = FXAA.isOn ? 1 : 0; if (FXAA.isOn) { ImageEffects.ImageEffectManager.API_EnableImageEffect <ImageEffects.FXAA>(); } else { ImageEffects.ImageEffectManager.API_DisableImageEffect <ImageEffects.FXAA>(); } }
//设置分辨率 public void SetResolutionData() { List <Dropdown.OptionData> dataList = new List <Dropdown.OptionData>(); List <string> supportList = ImageSetting.GetSupportResolutionList(); foreach (string s in supportList) { Dropdown.OptionData data = new Dropdown.OptionData(); data.text = s; dataList.Add(data); } if (notSupportFullSceen) { notSupportFullSceen.enabled = false; } initingVedioData = true; Resolution.options = dataList; Resolution.value = ImageSetting.GetResolutionIndex(ImageSetting.GetData().currResolution); FullScreen.isOn = ImageSetting.GetData().currWindowType == WindowType.FullScreen; Resolution.interactable = !FullScreen.isOn; initingVedioData = false; }
void FihishWithNormal() { //看看几何等级 PerformanceCheckManager.PerformanceCheckReslut reslut = PerformanceCheckManager.Instance.ReslutData; if (reslut.GeometricRenderLevel <= 1 || reslut.ImageEffectRenderLevel <= 1)//最低级 { ImageSetting.SetImageQuality(ImageQuality.Fastest); ImageSetting.ResetOthersSettings(); UpdateReslutUI(ImageQuality.Fastest); return; } //中级情况1,所有都通过了 if (reslut.GeometricRenderLevel == 2 && reslut.ImageEffectRenderLevel == 2) { ImageSetting.SetImageQuality(ImageQuality.Good); ImageSetting.ResetOthersSettings(); UpdateReslutUI(ImageQuality.Good); return; } //中级情况2,通过了几何,没有通过后处理测试 if (reslut.GeometricRenderLevel == 2) { ImageSetting.SetImageQuality(ImageQuality.Good); ImageSetting.ResetOthersSettings(); flag = ReslutImageFlags.NotSupportFullGoodImageEffect; UpdateReslutUI(ImageQuality.Good, flag); return; } //高级情况1,所有都通过了 if (reslut.GeometricRenderLevel == 3 && reslut.ImageEffectRenderLevel == 3) { ImageSetting.SetImageQuality(ImageQuality.High); ImageSetting.ResetOthersSettings(); UpdateReslutUI(ImageQuality.High); return; } //高级情况2,通过了几何,没有通过后处理测试 if (reslut.GeometricRenderLevel == 3) { ImageSetting.SetImageQuality(ImageQuality.High); ImageSetting.ResetOthersSettings(); flag = ReslutImageFlags.NotSupportFullHighImageEffect; UpdateReslutUI(ImageQuality.High, flag); return; } //最高级情况1,所有测试都通过了 if (reslut.GeometricRenderLevel == 4 && reslut.ImageEffectRenderLevel == 4) { //再看一下帧数,帧数超过70fps,可以把抗锯齿和Bloom开启来 //如果真是超过80fps,可以把抗锯齿,bloom和ao开起来 ImageSetting.SetImageQuality(ImageQuality.Best); ImageSetting.ResetOthersSettings(); ImageSetting.GetData().AdvanceImageEffectEnabled = 1; if (PerformanceCheck_FPS.currFPS > PerformanceCheckManager.PassLevleFps * 1.3f) { ImageSetting.GetData().FXAAEnabled = 1; ImageSetting.GetData().BloomAndFlaresEnabled = 1; flag = ReslutImageFlags.OpenOhtersImageEffects; if (PerformanceCheck_FPS.currFPS > PerformanceCheckManager.PassLevleFps * 1.4f) { ImageSetting.GetData().SSAOEnabled = 1; } } UpdateReslutUI(ImageQuality.Best, flag); return; } //最高级情况2,只通过了几何图形测试,没有通过后处理,这种情况是显卡的能力不足,给予两种选择 //1。降低分辨率 //2.关闭后处理 if (reslut.GeometricRenderLevel == 4) { ImageSetting.SetImageQuality(ImageQuality.Best); ImageSetting.ResetOthersSettings(); flag = ReslutImageFlags.NotSupportFullBestImageEffect; UpdateReslutUI(ImageQuality.Best, flag); return; } }
///// <summary> ///// 死亡前的碰撞层 ///// </summary> //private int nOldCollisionLayer = -1; // 进入状态 public bool OnEnter(IntPtr lParam) { //退出假死状态 if (m_pFSM != null && m_pFSM.animatorCtrl != null) { m_pFSM.animatorCtrl.Dying = false; } Debug.Log("on OnEnter CreaturePosture_Dead " + this.m_pFSM.name); if (m_pFSM.showLog) { Trace.Log(m_pFSM.name + "=======OnEnter CreaturePosture_Dead======"); } cmd_creature_die context = IntPtrHelper.toData <cmd_creature_die>(lParam); if (m_pFSM.showLog) { Trace.Log("DeadInterval:" + context.nDeadInterval); Trace.Log("reborn second:" + context.nInterval); } m_pFSM.rebornTick = context.nInterval - context.nDeadInterval; if (m_pFSM.rebornTick <= 0) { Trace.Log("rebornTick <= 0!"); //return false; 吃鸡地图,这个时差是0,所以先不要返回 } m_nDeadInterval = context.nDeadInterval; //暂时让角色死亡不让射线检测该层 //if (!m_pFSM.isHero) //{ // nOldLayer = m_pFSM.gameObject.layer; // if (m_pFSM.gameObject.layer != LayerMask.NameToLayer(Config.LayerTransparentFX)) // { // GameUtil.SetLayer(LayerMask.NameToLayer(Config.LayerNeutrality), m_pFSM.gameObject, true); // } // //m_pFSM.gameObject.layer = LayerMask.NameToLayer(Config.LayerPlayerFriend); // //if (m_pFSM.SkinConfig.ScreenCastObject != null) // //{ // // m_pFSM.SkinConfig.ScreenCastObject.layer = LayerMask.NameToLayer(Config.LayerPlayerFriend); // //} //} SkillCtrl sk = m_pFSM.GetComponent <SkillCtrl>(); if (sk) { sk.enabled = false; } SoldierController sco = m_pFSM.GetComponent <SoldierController>(); if (sco) { sco.dead = true; } if (m_pFSM.animator) { m_pFSM.animator.SetTrigger("Dead"); m_pFSM.animator.ResetTrigger("Reborn"); } //关闭死亡时要求关闭的光效 LightingEffectManager light = m_pFSM.GetComponent <LightingEffectManager>(); if (light) { light.CloseLightingWhenDead(); } startTick = GameLogicAPI.getSyncTickCount(); // GameLogicAPI.getTickCount(); endTick = startTick + (uint)m_pFSM.rebornTick; tick_cameraSwitchAfterDead = startTick + m_pFSM.cameraSwitchAfterDead; if (m_pFSM.isHero) { //GFxGameHud hud = SFGFxMovieManager.GetWindow<GFxGameHud>(); //if (SFGFxMovieManager.CheckTheMovieCanUse(hud)) //{ // hud.ShowReliveTime(((float)m_pFSM.rebornTick)); //} ScreenREC.GetInstance().SwitchRECState(ScreenREC.EMRECState.EMREC_STOP); //ImageEffects.ImageEffectManager.API_EnableImageEffect<ImageEffects.FullScreenGray>(); if (ImageSetting.GetData().currImageQuality == ImageQuality.Fastest) { LightingEffectFactory.EnableDeadEffect(); ImageEffects.ImageEffectManager.API_DisableImageEffect <ImageEffects.FullScreenSaturation>(); ImageEffects.ImageEffectManager.API_DisableImageEffect <ImageEffects.DepthOfFieldScatter>(); } else { LightingEffectFactory.DisableDeadEffect(); ImageEffects.ImageEffectManager.API_EnableImageEffect <ImageEffects.FullScreenSaturation>(); ImageEffects.ImageEffectManager.API_DisableImageEffect <ImageEffects.DepthOfFieldScatter>(); } } //死亡不碰撞 if (m_pFSM.controller) { //nOldCollisionLayer = m_pFSM.gameObject.layer; //m_pFSM.gameObject.layer = LayerMask.NameToLayer(Config.LayerIngoreRayCast); m_pFSM.pickableCount = 0; } int nEntityID = m_pFSM.entityID; U3D_Render.EntityView ev = EntityFactory.getPlayerViewByID(nEntityID); //添加金币掉落光效 if (GameLogicAPI.isInWarScene() > 0) { addMoneyEffect(ev, context.uMurderID); } USpeedUI.Blood.UBloodManager.Instance.OnEntityDead(m_pFSM.entityID, ENTITY_TYPE.TYPE_PLAYER_ROLE); // 小地图隐藏 // U3D_Render.EntityView objev = EntityFactory.getEntityViewByID(m_pFSM.entityID); // if (objev != null && GFxMinimapManager.Instance != null) // { // GFxMinimapManager.Instance.SetObjectVisible(m_pFSM.entityID, objev.createinfo.nMinimapIcon, 0); // } return(true); }
void OnGUI() { if (!ShowButtons) { return; } int xindex = -1; int yindex = 0; Rows = Screen.height / buttonHeight; for (int i = 0; i < AnimationName.Length; i++) { string [] s = AnimationName[i].Split('@'); string tempname = s[s.Length - 1]; yindex = i % Rows; if (i % Rows == 0) { xindex++; } if (string.IsNullOrEmpty(AnimationName[i])) { continue; } if (GUI.Button(new Rect(xindex * buttonWidth + Xoffset, yindex * buttonHeight, buttonWidth, buttonHeight), tempname)) { for (int j = 0; j < m_Animator.Length; j++) { m_Animator[j].Play(AnimationName[i]); } if (IsEnabledXP()) { PlayCameraAnim(XPClip); } if (animationNode.Count > 0) { for (int j = 0; j < animationNode.Count; j++) { AnimationNode node = animationNode[j]; //去掉空格 string CorrectName = tempname.Trim(); string CorrectName2 = node.AnimationName.Trim(); if (CorrectName.Equals(CorrectName2) || node.AlwaysPlay) { foreach (EffectNode n in node.effectList) { if (n) { bStartTime = true; timede = 0.0f; n.Init(); n.StopEffect(); n.ResetScale(); n.PlayEffect(isEmeny, -1, Vector3.zero, Vector3.zero, (int)EffectNodeMask.Mask_EnableLihgt); n.SetScale(SizeScale); } } foreach (AudioSource aud in node.audioList) { if (aud) { aud.Stop(); aud.Play(); } } } } if (MoveSpeed > 0.0001f && MoveTime > 0.0001f) { if (DelayStartMove > 0.01) { if (!isOnDelayStartMove) { isOnDelayStartMove = true; StartCoroutine(WaitForDelayStartMove()); } } else { isCanMove = true; CurrMoveTime = MoveTime; } } } if (PauseEditor != null) { PauseEditor(PausedWhenClickButton); } } } GUI.Label(new Rect(Screen.width - 100.0f, 0, 80, 20), "时间:" + timede.ToString("F2")); Color c = GUI.color; GUI.enabled = ImageSetting.GetData().currImageQuality != ImageQuality.Fastest; GUI.color = GUI.enabled ? c : Color.red; if (GUI.Button(new Rect(Screen.width - 100.0f, 20, 80, 20), "低等画质")) { ImageSetting.SetImageQuality(ImageQuality.Fastest); } GUI.enabled = true; GUI.color = c; GUI.enabled = ImageSetting.GetData().currImageQuality != ImageQuality.Good; GUI.color = GUI.enabled ? c : Color.red; if (GUI.Button(new Rect(Screen.width - 100.0f, 40, 80, 20), "中等画质")) { ImageSetting.SetImageQuality(ImageQuality.Good); } GUI.enabled = true; GUI.color = c; GUI.enabled = ImageSetting.GetData().currImageQuality != ImageQuality.High; GUI.color = GUI.enabled ? c : Color.red; if (GUI.Button(new Rect(Screen.width - 100.0f, 60, 80, 20), "高等画质")) { ImageSetting.SetImageQuality(ImageQuality.High); } GUI.enabled = true; GUI.color = c; GUI.enabled = ImageSetting.GetData().currImageQuality != ImageQuality.Best; GUI.color = GUI.enabled ? c : Color.red; if (GUI.Button(new Rect(Screen.width - 100.0f, 80, 80, 20), "极高画质")) { ImageSetting.SetImageQuality(ImageQuality.Best); } GUI.enabled = true; GUI.color = c; isEmeny = GUI.Toggle(new Rect(Screen.width - 100.0f, 100, 80, 20), isEmeny, "敌方技能"); SizeScale = GUI.HorizontalSlider(new Rect(Screen.width - 100.0f, 120, 80, 20), SizeScale, 0.01f, 10.0f); }
public void SetVedioData() { //AutoSetting.isOn = ImageSetting.AutoAdjustQuality > 0; //if (AutoSetting.isOn) // Shield.gameObject.SetActive(true); //else // Shield.gameObject.SetActive(false); AdvanceImangeEffect.interactable = false; AdvanceImangeEffect.isOn = false; SSAO.interactable = false; SSAO.isOn = false; FXAA.interactable = false; FXAA.isOn = false; BloomAndFlares.interactable = false; BloomAndFlares.isOn = false; ModifyGameBrightness.interactable = false; ModifyGameBrightness.maxValue = ImageSetting.GetData().MaxGameBrightness; ModifyGameBrightness.minValue = ImageSetting.GetData().MinGameBrightness; ModifyGameBrightness.value = ImageSetting.GetData().currGameBrightness; ModifyGameBrightness.interactable = true; int lv = (int)ImageSetting.GetData().currImageQuality - 1; ImageLevelBtnGroup.SetItemSelectedItem(lv); LvBg.anchoredPosition = new Vector2(LvImgMargin + lv * (LvImgSpacing + LvImgWidth), LvBg.anchoredPosition.y); if ((int)ImageSetting.GetData().currImageQuality == (int)VedioLevel.Best || (int)ImageSetting.GetData().currImageQuality == (int)VedioLevel.High) { AdvanceImangeEffect.interactable = false; AdvanceImangeEffect.isOn = ImageSetting.GetData().AdvanceImageEffectEnabled > 0; AdvanceImangeEffect.interactable = true; SetOthersImageSetting(); } foreach (VedioItemToggle toggle in m_VedioItemList) { switch (toggle.item) { case VedioItem.ShadowQuality: toggle.level = (VedioLevel)((int)ImageSetting.GetData().currShadowQuality); toggle.txt.text = levelDis[(int)ImageSetting.GetData().currShadowQuality]; continue; case VedioItem.SceneQuality: toggle.level = (VedioLevel)((int)ImageSetting.GetData().currSceneRenderingQuality); toggle.txt.text = levelDis[(int)ImageSetting.GetData().currSceneRenderingQuality]; continue; case VedioItem.EffectQuality: toggle.level = (VedioLevel)((int)ImageSetting.GetData().currEffectQuality); toggle.txt.text = levelDis[(int)ImageSetting.GetData().currEffectQuality]; continue; case VedioItem.TextureQuality: toggle.level = (VedioLevel)((int)ImageSetting.GetData().currTextureQuality); toggle.txt.text = levelDis[(int)ImageSetting.GetData().currTextureQuality]; continue; } } }