当前位置: 首页 > news >正文

【Unity3D】微信小游戏适配安全区域或胶囊控件(圆圈按钮)水平高度一致方案

面板保持如下RectTransform数据配置,挂上脚本,然后其子UI都要向上对齐,即

如下脚本是控制将面板的上边界与胶囊控件(圆心设置按钮)上边界水平对齐。

var topSize = rect.top;  这一行代码是获取到胶囊控件上边界,改为其他的就可以与其他位置水平对齐。
例如: var topSize = rect.bottom; 与胶囊控件下边界对齐
例如: var topSize = _sInfo.safeArea.top; 与安全区域上边界对齐(刘海屏下边界)
... ...

using System;
using Newtonsoft.Json;
using UnityEngine;
using WeChatWASM;public class TopPanelAdapt : MonoBehaviour
{//开发阶段自定义posYpublic float posY = 0f;void Start(){//微信宏(具体项目可能不同)
#if UNITY_WEBGL || WEIXINMINIGAME || UNITY_EDITORInitTop();
#endif}void InitTop(){var top_panel = GetComponent<RectTransform>();//胶囊控件区域信息var rect = WX.GetMenuButtonBoundingClientRect();//屏幕信息var _sInfo = WeChatWASM.WX.GetWindowInfo();if (rect != null && _sInfo != null){var sHeight = _sInfo.windowHeight;top_panel.sizeDelta = Vector2.zero;var topSize = rect.top;//开发分辨率: 750 x 1334 (具体项目可能不同)//垂直px to rpx操作 从微信获取的是px像素尺寸 需转为Unity的rpx尺寸float newSize = (float)topSize * (1334f / UnityEngine.Screen.height);//PS: 如果是水平px 则是  px * (750f / UnityEngine.Screen.width);topSize = newSize;double t = 0;if (topSize > 0){t = topSize / sHeight;}top_panel.pivot = new Vector2(0.5f, 0.5f);top_panel.anchorMin = new Vector2(0, 0);top_panel.anchorMax = new Vector2(1, 1 - (float)t);}else{top_panel.offsetMax = new Vector2(top_panel.offsetMax.x, -posY);}}
}
http://www.lryc.cn/news/582451.html

相关文章:

  • element el-table渲染二维对象数组
  • 什么是 3D 文件?
  • 开源 python 应用 开发(三)python语法介绍
  • 【电脑】主要组成部分
  • 装备制造数字孪生底座平台
  • 【网络】Linux 内核优化实战 - net.ipv4.tcp_syn_retries
  • 利用AI技术快速提升图片编辑效率的方法
  • 数据结构 --- 栈
  • django-ckeditor配置html5video实现视频上传与播放
  • word中的单位详解
  • 算法化资本——智能投顾技术重构金融生态的深度解析
  • 使用阿里云/腾讯云安装完成mysql使用不了
  • 分库分表之实战-sharding-JDBC广播表
  • JavaScript基础篇——第二章 类型转换与常见错误解析
  • 《UE5_C++多人TPS完整教程》学习笔记42 ——《P43 瞄准(Aiming)》
  • 250708-Svelte项目从Debian迁移到无法联网的RHEL全流程指南
  • 计算机网络:(八)网络层(中)IP层转发分组的过程与网际控制报文协议 ICMP
  • [论文阅读] 软件工程 | 自适应CPS中的人机协作与伦理
  • 自动驾驶感知系统
  • 分水岭算法:图像分割的浸水原理
  • 【王树森推荐系统】召回12:曝光过滤 Bloom Filter
  • 大数据在UI前端的应用创新:基于社交网络的用户影响力分析
  • 深度学习——神经网络1
  • 基于物联网的智能交通灯控制系统设计
  • three案例 Three.js波纹效果演示
  • 【操作系统】进程(二)内存管理、通信
  • MySQL Galera Cluster部署
  • 如何利用AI大模型对已有创意进行评估,打造杀手级的广告创意
  • 算法学习笔记:11.冒泡排序——从原理到实战,涵盖 LeetCode 与考研 408 例题
  • 【计算机网络】王道考研笔记整理(1)计算机网络体系结构