当前位置:首页 > 游戏 >

王者荣耀不能全屏的原因(王者荣耀不玩了皮肤可以退换成钱吗)

来源:原点资讯(m.360kss.com)时间:2023-11-05 17:48:07作者:YD166手机阅读>>



01

项目背景

地图展示作为游戏 LBS 社交的基础能力,是王者荣耀地图技术落地中需要突破和解决的事情。

王者荣耀不能全屏的原因,王者荣耀不玩了皮肤可以退换成钱吗(1)

地图能力是地图开放平台的核心能力,在经过第一次沟通后,明确了几个核心需求:王者地图UI的展示 、POI 点省市县排行、热门街区排行 、定位能力的输出。

并且也明确了由地图团队提供 Unity 上的地图展示方案,由王者团队、阿波罗团队以及地图团队共同开发该项目。

接下来就进入了技术方案的调研和设计阶段。

02

技术方案演进

2.1 地图方案选型

地图展示作为游戏 LBS 社交的基础能力,是当前方案中最需要突破和解决的事情。按照《王者荣耀》的整体计划,留给调研设计、研发和联调也就只有 1 个月的时间,在技术选型上更多的是结合当前已有的地图能力对外输出。

从现状出发,地图开放平台对外输出移动端地图 sdk,使用平台分为 Android 端和 ios 端,在效果上可以分为两类,2D 版本和 3D 版本。区别如下:

王者荣耀不能全屏的原因,王者荣耀不玩了皮肤可以退换成钱吗(2)

王者荣耀不能全屏的原因,王者荣耀不玩了皮肤可以退换成钱吗(3)

2D 版本的地图提供了基础的地图展示能力,3D 版本的地图可以支持更酷炫的建筑物拔起效果以及无极缩放等,在体验上更酷炫,但所占用的包大小更大。

android:

包大小

包增量

栅格1.2.8

221K

115K

矢量4.0.1

jar包2.3M(包括资源文件1.1M),so库1.3M(armV7a)

2.2M(armv7a)

ios:

代码段

栅格1.2.7

321K(arm64)

矢量4.0.0

1490K (arm64)

从王者系统的第一期需求效果图来看,2D 版本的地图是完全可以满足的。而王者对于包大小也有严格的要求。

基于此,我们把地图支持的项目目标定义为:为王者荣耀提供基于 2D 效果的轻量级游戏解决方案。

2.2 技术方案选型2.2.1 第一阶段 原生View挂载可行性分析

明确了使用 2D 地图 sdk 对外输出后,需要解决的是如何将两个平台 ( Android 和ios )的原生 View 和 Unity 的 View 结合在一起。

Unity 与原生的 andorid 和 ios 相互调用,在技术上是可行的。之前王者内部是有一些页面由各个团队提供的原生 view 支持(主要是一些独立的 webview 页面,如英雄故事,王者规则等)。

2.2.1.1 Android可行性分析

Android一般情况有三种方式实现地图:

1)启动新的 Activty,展示一个全新的页面;

2)使用 WindowManager,在游戏 Activity 之上显示一个新页面;

3)加载原生 View,需要将原始View挂载到游戏 Activity 之上。

第一种方案一开始就被pass了。由于已明确了 Unity 业务逻辑,上层负责 UI 展示,而展示地图时,Unity 侧还需要进行一些逻辑处理。新起一个 Activity, 在体验上和逻辑上都行不通。

第二个方案和第三个方案原则上都行得通,两种方案也都做了验证。本文介绍的是第三种方案。

原理如下:

public class UnityPlayerNativeActivity extends NativeActivity { protected UnityPlayer mUnityPlayer; // don't change the name of this variable; referenced from native code // Setup activity layout @Override protected void onCreate (Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); getWindow().takeSurface(null); setTheme(android.R.style.Theme_NoTitleBar_Fullscreen); getWindow().setFormat(PixelFormat.RGB_565); mUnityPlayer = new UnityPlayer(this); if (mUnityPlayer.getSettings ().getBoolean ("hide_status_bar", true)) getWindow ().setFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(mUnityPlayer); mUnityPlayer.requestFocus(); } .............................. }

这个是 Android 中 Unity 中 Activity 的基类,而 mUnityPlayer 也是通过 setContentView 加载的,也就是加载到 DecorView 上。所以只需要再将 Native 的View 加载上去就可以了:

ViewGroup rootView = (ViewGroup)activity.getWindow().getDecorView(); ViewGroup.LayoutParams param = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT); rootView.addView(mView, param);

2.2.1.2 ios可行性分析

ios 侧可以通过将原生View挂载在地图的 Window 上。

/** * 获取场景挂载点 (keyWindow) * @return 挂载点 */ (UIView *)getMountPoint{ UIWindow *window = [UIApplication sharedApplication].keyWindow; NSAssert(window != nil, @"window must not be nil"); return window; } /** * 挂载到 keywindow. */ - (void)mount{ UIView *mountPoint = [[self class] getMountPoint]; NSAssert([self underlyingView].superview == nil , @"scene super view must be nil"); [mountPoint addSubview:[self underlyingView]]; }

以上方案均在 Unity 侧验证通过。

2.2.2 第二阶段 View层级关系

从整体需求来看,上层不仅仅是一个单独的地图,还要有很多的 UI 元素:

王者荣耀不能全屏的原因,王者荣耀不玩了皮肤可以退换成钱吗(4)

栏目热文

王者荣耀为啥打开不是全屏

王者荣耀为啥打开不是全屏

王者荣耀每次打字的时候直接是全屏,非常的不方便,有没有是半屏的方法呢,接下来咱们就来看看王者荣耀打字怎么半屏的方法介绍,...

2023-11-05 18:24:27查看全文 >>

为什么王者荣耀不能全屏(王者荣耀全屏模式设置)

为什么王者荣耀不能全屏(王者荣耀全屏模式设置)

王者荣耀在14号进行了全新的S22赛季的更新!作为2021年的第一个大版本更新可以说牌面拉满,但是万万没想到和以往不同的...

2023-11-05 18:22:25查看全文 >>

大寒必吃三种食物(大寒食物一览表)

大寒必吃三种食物(大寒食物一览表)

大寒,二十四节气中的最后一个节气,过了大寒之后便要开始一个新的节气轮回。俗话说“大寒小寒,无风自寒”,大寒时节寒潮南下频...

2023-11-05 17:54:35查看全文 >>

白露当天吃什么(立夏立秋吃什么)

白露当天吃什么(立夏立秋吃什么)

“清风一朝胜,白露忽已凝”,进入白露时节,感受最明显的就是早晚间已有了不少的凉意。在这个寒热交替的时段里,饮食方面是很有...

2023-11-05 17:53:32查看全文 >>

白露前后吃什么食物(白露前后吃什么食物最好)

白露前后吃什么食物(白露前后吃什么食物最好)

9月8日(上周六)是白露,进入白露之后就意味着夏季结束,秋季正式到来。白露是二十四节气之一,是9月份的第一个节气。在这个...

2023-11-05 18:17:03查看全文 >>

王者荣耀怎么能显示全屏(王者荣耀怎么变全屏了)

王者荣耀怎么能显示全屏(王者荣耀怎么变全屏了)

在王者荣耀中,有很多英雄的技能丢出来就持续很久,不仅能堆叠那效果还非常强悍,要避开这些技能阵型就会被打乱,要是和队友分开...

2023-11-05 18:02:10查看全文 >>

王者荣耀屏幕不能全屏(王者荣耀皮肤全屏展示什么意思)

王者荣耀屏幕不能全屏(王者荣耀皮肤全屏展示什么意思)

王者荣耀正式服于今日迎来了一次小更新,主要优化部分机型的适配问题,其实就是iphoneX无法全屏的情况,那么优化后效果如...

2023-11-05 17:45:32查看全文 >>

王者荣耀打开为什么不是全屏(王者荣耀为什么不能显示全屏)

王者荣耀打开为什么不是全屏(王者荣耀为什么不能显示全屏)

王者荣耀正式服于今日迎来了一次小更新,主要优化部分机型的适配问题,其实就是iphoneX无法全屏的情况,那么优化后效果如...

2023-11-05 18:30:17查看全文 >>

手机为什么王者荣耀不能全屏显示(为什么手机打王者荣耀卡)

手机为什么王者荣耀不能全屏显示(为什么手机打王者荣耀卡)

如今,折叠屏手机在市场占据了一定的份额,每个品牌基本都有推出他们的折叠屏产品。尽管折叠屏发展的越来越好,但是为何在今天,...

2023-11-05 18:20:28查看全文 >>

如何解决王者荣耀不能全屏

如何解决王者荣耀不能全屏

王者荣耀是目前最为热门的手机游戏,而每一个游戏都可能有外挂的存在,王者自然也不例外,不过官方对于这方面的管制做得比较到位...

2023-11-05 18:09:23查看全文 >>

文档排行