pc端项目临近发布之时,免不了向玩家提供一些自订选项,以适应各自的习惯和机能,画面设置就是必要的一环。

主要的画面选项有:

1.全屏/窗口化

2.分辨率

3.视野距离

4.抗锯齿

5.后期处理

6.阴影质量

7.贴图质量

8.特效

9.植被质量

上述选项对fps影响最大的其实还是分辨率,阴影质量如果开到0档就完全没有人影十分诡异,贴图质量以现在电脑的内存而言一般都能开到最高,对应的代码分别是:

APlayerController* PController = UGameplayStatics::GetPlayerController(gamemode->GetWorld(), 0);
PController->ConsoleCommand(TEXT("t.MaxFPS 144"), true);//先设置最大fps UGameUserSettings* MyGameSettings = GEngine->GetGameUserSettings();
MyGameSettings->SetFullscreenMode(EWindowMode::Fullscreen);
MyGameSettings->ApplySettings(true);//这句必须紧跟全屏才能立即全屏,不知为何 PController->ConsoleCommand(TEXT("r.setres " + resolutionnow), true);//先设置分辨率(形如1920x1080f,1280x720f)
//如果用的是MyGameSettings形式设置分辨率会导致不能立即全屏,原因也不详 //接下来为了方便起见,以一个总体画质变量general_quality来设置
MyGameSettings->SetViewDistanceQuality(general_quality);
MyGameSettings->SetAntiAliasingQuality(general_quality);
MyGameSettings->SetPostProcessingQuality(general_quality);
MyGameSettings->SetShadowQuality(general_quality);
MyGameSettings->SetTextureQuality(general_quality);
MyGameSettings->SetVisualEffectQuality(general_quality);
MyGameSettings->SetFoliageQuality(general_quality); MyGameSettings->SaveSettings();

然而这样设置看似非常正确,实则还有问题。

每次设置画面之后的确能立即变更画质,然而下一次重新开启游戏后画面选项仍旧回到了引擎默认设置,至少需要再点一次应用设置才能见效,非常地离奇。

我查阅了一下log发现每次新打开游戏进行上述设置之后,这些选项会自动被设置回来。

于是我只好使出杀手锏——运行两次大法,也就是把上述代码段执行两次。。

for (int i = ; i < ; i++)
{
//。。。。。。。。
}

结果成功解决了!!!

ue4玄学画面设置实现的更多相关文章

  1. iOS7的启动画面设置及asset catalogs简介

    如果上网搜索一下“iOS App图标设置”或者“iOS App启动画面设置”肯定能找到不少文章,但内容大多雷同,就是让你按照某种尺寸制作若干张png图片,再按照苹果的命名规范,加入到项目中去,一行代码 ...

  2. [UE4]Montage动画设置Slot

    最后一张图看下,配合官网motage教程,容易理解push anim具体用法 http://aigo.iteye.com/blog/2277545 如何新建一个Montage的步骤这里省略了,网上很多 ...

  3. [UE4]图片按钮设置技巧

  4. [UE4]编辑器偏好设置,在同一个窗口以标签打开蓝图

  5. LcdTools如何实现PX01设置不同的画面不同的背光亮度

    背光驱动分两种原理:恒压模式和恒流模式.恒压背光顾名思义提供恒定电压即可,这种屏正常来讲自带背光驱动电路,只需提供背光工作电压.背光使能和背光调光占空比控制.恒流背光指屏的背光只有纯灯串,需外部提供相 ...

  6. UE4关于Oculus Rift (VR)开发忠告

    转自:http://blog.csdn.net/cartzhang/article/details/42493843 UE4虚拟现实 实现的注意事项 https://docs.unrealengine ...

  7. iOS 启动画面 代码自定义

    先来看一个可能会遇到的问题: 如果你已经删除了xcode为你的项目自动生成的LaunchScreen.storyboard, 然后你在测试你的app的时候发现,屏幕里出现了黑色的区域,如上图(画红线的 ...

  8. 重新打开singleTask画面时传值问题

    记录学习之用 大家都知道假如当我们的A画面设置了android:launchMode="singleTask"时,从A画面跳到B画面之前没有finishA画面,然后在B画面使用st ...

  9. 用VC制作应用程序启动画面

    摘 要:本文提供了四种启动画面制作方法. 使用启动画面一是可以减少等待程序加载过程中的枯燥感(尤其是一些大型程序):二是 可以用来显示软件名称和版权等提示信息.怎样使用VC++制作应用程序的启动画面呢 ...

随机推荐

  1. bzoj4514 [Sdoi2016]数字配对

    Description 有 n 种数字,第 i 种数字是 ai.有 bi 个,权值是 ci. 若两个数字 ai.aj 满足,ai 是 aj 的倍数,且 ai/aj 是一个质数, 那么这两个数字可以配对 ...

  2. 某次模拟考试day2t3 菊菊的数据结构

    [题目描述] 菊菊是一个码农,他很喜欢码一些高(e)级(xin)数据结构. 有一天,菊菊在打网赛时遇到了 wfj.wfj 觉得他很有前途,可以做下一代码农大神. 于是乎,wfj 给菊菊出了一道题,来检 ...

  3. Akka(1):Actor - 靠消息驱动的运算器

    Akka是由各种角色和功能的Actor组成的,工作的主要原理是把一项大的计算任务分割成小环节,再按各环节的要求构建相应功能的Actor,然后把各环节的运算托付给相应的Actor去独立完成.Akka是个 ...

  4. hibernate 多对多关系总结

    hibernate中,对对象关系的映射处理估计是最让人迷惑和头疼的,特别是cascade和inverse属性的使用,不知已经杀死了我多少个脑细胞了,好记性永远比不上烂笔头,为了能节省自己的脑细胞,降低 ...

  5. java并发程序——并发容器

    概述 java cocurrent包提供了很多并发容器,在提供并发控制的前提下,通过优化,提升性能.本文主要讨论常见的并发容器的实现机制和绝妙之处,但并不会对所有实现细节面面俱到. 为什么JUC需要提 ...

  6. cmd 命令行模式操作数据库 添加查询 修改 删除 ( 表 字段 数据)

    一 查看数据库.表.数据字段.数据 1 首先配置环境变量 进入mysql  或者通过一键集成工具 打开mysql命令行  或者mysql 可视化工具 打开命令行 进入这样的界面   不同的机器操作不同 ...

  7. 安卓OKhttp请求封装

    目前安卓开发中使用的网络工具为OKhttp,但是okhttp的使用还不是很方便,在okhttp的基础上再对请求进行封装会极大的方便网络调用. 下面直接上代码. 请求封装 public class Ht ...

  8. vlan内部与外部某终端之间的通信

    实现虚拟局域网外部终端与内部终端之间的通信,即实现pc3与pc1和pc4之间的通信. 把交换机上的默认VLAN1改成VLAN2(红色字体命令). 各vlan内部终端的通信,是通过vlan ID来实现的 ...

  9. tail命令

    tail命令用来取文件后几行,默认显示后10行.有多个FILE,每个都带有一个头文件名称. 语法: tail [OPTION]... [FILE]... 选项: -n#:取文件后#行,n可省略: -c ...

  10. 使用Maven管理Oracle驱动包

    由于Oracle授权问题,Maven3不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到本地仓库. 手动添加到本地仓库需要本地有 ...