- 微信排行榜渲染相关,每个标签的 class 的 width 和 height 都是相同的,但是被拉伸
微信排行榜渲染相关。我在 css 的每一个标签相关的 class 中都设置了长宽是相等的,但是最终渲染出来的效果是所有标签都被拉伸了,请问这是为什么,除了把标签的长宽对应改成长方形这种 hack 的方法之外,还有什么解决方法? 渲染图: [图片] 样式代码: open-data\render\styles\friendRank.js /** * 定义一些样式,方便在 tpls 文件夹中的定义内容的文件来使用 */ export default function getStyle(data) { // let data = { width: 356, height: 400 }; let itemHeight = data.height / 2 / 3; let itemWidth = Math.ceil(data.width * 0.94); return { // 容器 container: { width: data.width, height: data.height, borderRadius: 12, paddingLeft: data.width * 0.03, paddingRight: data.width * 0.03, }, // 每一行排名的背景 rankBg: { position: 'absolute', top: 0, left: 0, width: itemWidth, height: itemHeight, }, // 列表中一个排名对象的大小 listItem: { position: 'relative', width: itemWidth, height: itemHeight, flexDirection: 'row', alignItems: 'center', marginTop: 2, }, // 每个列表对象的排名 listItemRank: { position: 'relative', width: itemHeight * 0.8, height: itemHeight * 0.8, fontSize: 12, fontWeight: 'bold', textAlign: 'center', //marginTop: itemHeight*0.4, //marginBottom: itemHeight*0.1, }, // 每个列表对象的头像 listItemAvatar: { position: 'relative', width: itemHeight * 0.8 , height: itemHeight * 0.8, //borderRadius: 15, //borderWidth: 5, borderColor: 'black', }, // 每个列表对象的名称 listItemName: { position: 'relative', // 除去其他 4 个元素,剩下的长度就是名字的长度 // 但是每一行排名的背景图本身占据的范围不一定是 itemWidth // 所以这个列表对象的名称的 width 还要稍微缩小一点 width: (itemWidth - 4 * itemHeight * 0.8) * 0.8, height: itemHeight*0.5, fontSize: 12, //marginLeft: 30, //marginTop: itemHeight*0.4, //marginBottom: itemHeight*0.1, }, // 超级动物的数量 listItemSuperAnimalCount: { position: 'relative', width: itemHeight * 0.8, height: itemHeight * 0.8, fontSize: 12, fontWeight: 'bold', textAlign: 'right', //marginRight: 30, //marginTop: itemHeight*0.4, //marginBottom: itemHeight*0.1, }, // 普通动物的数量 listItemNormalAnimalCount: { position: 'relative', width: itemHeight * 0.8, height: itemHeight * 0.8, fontSize: 12, fontWeight: 'bold', textAlign: 'right', //marginRight: 30, //marginTop: itemHeight*0.4, //marginBottom: itemHeight*0.1, }, }; } h5 转微信渲染引擎代码: open-data\render\tpls\friendRank.js export default function anonymous(it) { let out = '<view class="container" id="main"> <view class="rankList"> <scrollview class="list" scrollY="true"> '; const arr1 = it.data; if (arr1) { let item; let index = -1; const l1 = arr1.length - 1; while (index < l1) { item = arr1[(index += 1)]; out += ` <view class="listItem"> <image src="open-data/render/image/rankBg.png" class="rankBg"></image> <text class="listItemRank" value="${index +1 }"></text> <image class="listItemAvatar" src="${item.avatarUrl}"></image> <text class="listItemName" value="${item.nickname}"></text> <text class="listItemSuperAnimalCount" value="${item.superAnimCount || 0}"></text> <text class="listItemNormalAnimalCount" value="${item.normalAnimCount || 0}"></text> </view> `; } } out += ' </scrollview> </view></view>'; return out; } 排行榜使用的 RawImage 在场景树中的排布如图 [图片] RawImage 的每一个父节点我都看过了,Scale 都是 1 RawImage 的父节点中包含的与 Canvas 调整相关的组件也就是一个 Canvas Scaler,这个是用来适配不同尺寸的设备的,我也尝试禁用这个组件了,禁用了之后还是有这个被拉伸的问题
2023-05-17 - 加载 AA 包失败,提示 Invalid URI, RuntimeData is null.
1.问题描述 使用 Addressables.LoadSceneAsync 加载的场景 在 Unity Addressable 三种模式,直接加载资源,模拟加载资源包,真实使用构建的资源包,三种模式测试都没问题 确认在编辑器中构建到 WebGL 了 在微信转换小游戏插件中填写了微信云托管的 CDN 在构建得到文件夹中也确认了有 AA 包 在微信云托管上也确认了有 AA 包 但是在微信开发者工具中,当我使用 Addressables.LoadSceneAsync 加载场景,会报错 Invalid URI, RuntimeData is null. 等错误,看上去像是我链接有问题?但是我一路检查,唯一相关的就一个 CDN 了吧?真不知道哪错了 请问一般这种情况怎么解决?非常感谢! 2.版本信息 Unity Editor 版本:2021.2/china_support/instantgame/staging 8bd2ddd0516e 转换插件版本:minigame.202304281522 微信开发者工具版本:1.05.2204264 3.截图信息 转换插件设置截图: [图片] Unity 默认的 AA 包位置,没有修改过: [图片] 在转换成小游戏的文件夹的 minigame 文件夹中,查看导出的 game.js 中,也确认了 CDN 正确: [图片] 在转换成小游戏的文件夹的 webgl 文件夹中,也确认了 AA 包是存在的: [图片] 在微信云托管的对象存储中也在 CDN 路径下上传了 StreamingAssets 文件夹,也确认了确实有 AA 包 [图片] 虽然感觉微信云托管的服务和对象存储不是一回事,我也不太懂……但是由于微信云托管有一个一段时间后没有访问实例就关闭的功能,我第一次测试的时候他是关着的,我之后访问了一下,让他启动了,启动之后还是还是无法加载 AA 包的错误……或许服务和对象存储就是两个东西? [图片] 在微信开发者工具中,每次测试之前也试过清理全部缓存,之后重新加载项目了,也还是没用 [图片] 错误日志截图: [图片] 错误日志: plugin.js:77 System.UriFormatException: Invalid URI: The URI scheme is not valid. at System.Uri.CreateThis (System.String uri, System.Boolean dontEscape, System.UriKind uriKind) [0x00000] in <00000000000000000000000000000000>:0 (env: Windows,mg,1.05.2204264; lib: 2.27.2) plugin.js:77 RuntimeData is null. Please ensure you have built the correct Player Content. (env: Windows,mg,1.05.2204264; lib: 2.27.2) webgl.wasm.framework.unityweb.js:4 Addressables - Unable to load runtime data at location UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle`1[[UnityEngine.AddressableAssets.Initialization.ResourceManagerRuntimeData, Unity.Addressables, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]. plugin.js:77 OperationException : Addressables - Unable to load runtime data at location UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle`1[[UnityEngine.AddressableAssets.Initialization.ResourceManagerRuntimeData, Unity.Addressables, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]. (env: Windows,mg,1.05.2204264; lib: 2.27.2) plugin.js:77 UnityEngine.AddressableAssets.InvalidKeyException: Exception of type 'UnityEngine.AddressableAssets.InvalidKeyException' was thrown. No Location found for Key=Assets/Scenes/LoadingScene.unity (env: Windows,mg,1.05.2204264; lib: 2.27.2) OperationException : ChainOperation failed because dependent operation failed UnityEngine.AddressableAssets.InvalidKeyException: Exception of type 'UnityEngine.AddressableAssets.InvalidKeyException' was thrown. No Location found for Key=Assets/Scenes/LoadingScene.unity (env: Windows,mg,1.05.2204264; lib: 2.27.2)
2023-04-30