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

Unity | 发布Android的那些事儿

1.使用UnityWebRequest获取StreamingAssets中的json文件

(1)直接根据不同平台指定url路径

    IEnumerator AITalPredZhanHui(){string url;string fileName = "girl.json";
#if UNITY_EDITOR || UNITY_STANDALONEurl = "file://" + Application.dataPath + "/StreamingAssets/" + fileName;
#elif UNITY_IPHONEurl = "file://" + Application.dataPath + "/Raw/"+ fileName;
#elif UNITY_ANDROIDurl = "jar:file://" + Application.dataPath + "!/assets/"+ fileName;
#endifDebug.Log(url);using (UnityWebRequest w = UnityWebRequest.Get(url)){yield return w.SendWebRequest();if (w.isNetworkError || w.isHttpError){Debug.Log("加载失败");}else{sdkMsg = JsonConvert.DeserializeObject<SDKData>(w.downloadHandler.text);//...}}}

(2)运用System.Uri类

System.Uri这个类,这个类可以帮助我们更具不同平台更好的构造uri,特别是在使用本地路径得时候,结合Path.Combine能更好的得出Uri路径。因为平台的区别,Uri路径也不同。

var uri = new System.Uri(Path.Combine(Application.streamingAssetsPath, "girl.json"));
Debug.Log(uri);

以上两种方式在Android端得到的路径相同:jar:file:///data/app/com.DefaultCompany.AndroidTest-ZQ5hoVVjvdSWV_n-_xw2lQ==/base.apk!/assets/girl.json

2.帧率设置

官方文档中有下述描述:

-All mobile platforms have a fix cap for their maximum achievable frame rate, that is equal to the refresh rate of the screen (60 Hz = 60 fps, 40 Hz = 40 fps, ...). Screen.currentResolution contains the screen's refresh rate.

- Additionally, all mobile platforms can only display frames on a VBlank. Therefore, you should set the targetFrameRate to either -1, or a value equal to the screen's refresh rate, or the refresh rate divided by an integer. Otherwise, the resulting frame rate is always lower than targetFrameRate. Note: If you set the targetFrameRate to the refresh rate divided by an integer, the integer division leads to the same effective fps as setting QualitySettings.vSyncCount to the same value as that integer.

翻译下来就是:

所有移动平台都有其最大可实现帧速率的固定上限,即等于屏幕的刷新率(Screen.currentResolution)(60 Hz = 60 fps,40 Hz = 40 fps,...)。Screen.currentResolution包含屏幕的刷新率。

此外,所有移动平台只能在VBlank上显示帧。因此,应该将targetFrameRate设置为 -1、或者等于屏幕刷新率的值、或者刷新率除以一个整数得到的值。否则,生成的帧速率始终低targetFrameRate。注意:如果将targetFrameRate设置为刷新率除以整数,则整数除法导致的有效 fps 与将QualitySettings.vSyncCount设置为与该整数相同的值的效果相同。

举个例子:

我们通过下方代码获取到Android设备的屏幕刷新率为60HZ,那么我们通过Application.targetFrameRate只能是60、30、20、15、12、10FPS,如果我们设置为25,则真实的fps为20。

RefreshRate rate = Screen.currentResolution.refreshRateRatio;

相关文章:

Unity | 发布Android的那些事儿

1.使用UnityWebRequest获取StreamingAssets中的json文件&#xff08;1&#xff09;直接根据不同平台指定url路径IEnumerator AITalPredZhanHui(){string url;string fileName "girl.json"; #if UNITY_EDITOR || UNITY_STANDALONEurl "file://" Applicat…...

git为什么要先commit,然后pull,最后再push?而不是commit完直接push?

情况是这样的&#xff0c;现在远程有一个仓库&#xff0c;分支就一个&#xff0c;是master。然后我本地的仓库是从远程的master上clone下来的。大家都是clone下来&#xff0c;再在自己本地改好&#xff0c;再commit然后pull然后push&#xff0c;大家都是这么做的。那么现在问题…...

若依框架----源码分析(@RateLimiter)

若依作为最近非常火的脚手架&#xff0c;分析它的源码&#xff0c;不仅可以更好的使用它&#xff0c;在出错时及时定位&#xff0c;也可以在需要个性化功能时轻车熟路的修改它以满足我们自己的需求&#xff0c;同时也可以学习人家解决问题的思路&#xff0c;提升自己的技术水平…...

页面的重排和重绘?

思路&#xff1a; 网页渲染HTML文件到浏览器的过程->定义->如何优化网页渲染HTML文件到浏览器的过程HTML 文件通过HTML解析器解析生成DOM树&#xff1b;CSS文件通过CSS解析器生成CSSOM树&#xff1b;DOM树和CSSOM树生成渲染树&#xff08;render tree&#xff09;&#x…...

人脸检测-python和c++实现

人脸检测是计算机视觉领域中的一个重要应用,其目的是从图像或视频中自动检测出其中的人脸,并对其进行识别、跟踪等操作。人脸检测技术已经广泛应用于安防、人机交互、娱乐等领域,具有广泛的应用前景。 人脸检测的基本思路可以分为以下几个步骤: 图像预处理:首先需要对输入…...

PowerJob源码环境搭建

一、IEDA导入PowerJob源码 gitgithub.com:PowerJob/PowerJob.gitPowerJob 由调度服务器&#xff08;powerjob-server&#xff09;和执行器&#xff08;powerjob-worker&#xff09;两部分组成 powerjob-server 负责提供 Web 服务和完成任务的调度powerjob-worker 则负责执行用…...

天梯赛刷题小记 —— L2

最近在重刷 天梯赛&#xff0c;浅浅记录一下&#xff0c;进入L2阶段了 L2-001 紧急救援 解题思路&#xff1a;典型的dijkstra模板题&#xff0c;带路径记录与权重&#xff0c;方案数记录&#xff0c;解析出过 Dijkstra(兼路径) #include <bits/stdc.h> #define inf…...

Prometheus监控实战系列十九:监控Kubernetes集群(上)

Kuberentes是一款开源的容器编排产品&#xff0c;由Google开发后发布到社区&#xff0c;并在2015年将该项目捐献给了云原生基金会&#xff08;Cloud Native Computing Foundation&#xff09;。从2014年第一个版本发布以来&#xff0c;Kubernetes便迅速获得开源社区的追捧&…...

番茄学习法——亲测超级好用

今天给大家分享下我最近使用的学习方法&#xff0c;真的非常好用&#xff01;大家用起来&#xff01; 在日常的学习和工作中&#xff0c;我们经常会遇到一些难以克服的问题&#xff1a;分心、效率低下、焦虑等。为了帮助人们更好地学习和工作&#xff0c;一些学习方法和工具应运…...

vue 项目中使用高德地图

一、账号准备 首先&#xff0c;需要注册并登录高德地图开放平台&#xff0c;申请密钥。操作指引&#xff1a;高德地图开放平台 二、安装高德地图加载器 npm 安装&#xff1a; npm i amap/amap-jsapi-loader --save或者 yarn 安装&#xff1a; yarn add amap/amap-jsapi-loa…...

【每日一题】病人排队

题目描述小理是个热爱生活的孩子。病人登记看病&#xff0c;小理想编写一个程序&#xff0c;将登记的病人按照以下原则排出看病的先后顺序&#xff1a;1. 老年人&#xff08;年龄 ≥≥ 60岁&#xff09;比非老年人优先看病。2. 老年人按年龄从大到小的顺序看病&#xff0c;年龄…...

【数据结构】链表OJ题

目录面试题 02.04 分割链表剑指 Offer II 027 回文链表160 相交链表141 环形链表142 环形链表 II138 复制带随机指针的链表面试题 02.04 分割链表 定义lesshead和greaterhead链接小于和大于等于k的值分别设置哨兵位和尾节点指针最后将两表去除哨兵位再链接 struct ListNode* p…...

冒泡 VS 插入 VS 选择——谁更胜一筹?(附排序源码)

文章目录什么样的“排序算法”更加优质&#xff1f;排序算法的执行效率排序算法的内存消耗排序算法的稳定性冒泡排序&#xff08;Bubble Sort&#xff09;插入排序&#xff08;Insertion Sort&#xff09;选择排序&#xff08;Selection Sort&#xff09;最终的胜利者&#x1f…...

[python tools] 今天看到另一个配置工具 YACS,所以做下笔记

YACS 实际上就只是把别人的readme翻译了一下 github: https://github.com/rbgirshick/yacs 样例代码: https://github.com/Wuziyi616/multi_part_assembly/blob/master/docs/config.md 一、使用方法 1. 首先搞一个config的python文件&#xff0c;用来存一下基本的配置信息 比…...

Prometheus cadvisor容器监控和node-exporter节点监控

往期文章 Prometheus监控系统 https://blog.csdn.net/qq_39578545/article/details/108754585 Docker之compose介绍 使用一个Dockerfile模板文件可以定义一个单独的应用容器&#xff0c;如果需要定义多个容器就需要服务编排。下面介绍Docker官方产品&#xff0c;Docker Comp…...

机器学习|正则化|评估方法|分类模型性能评价指标|吴恩达学习笔记

前文回顾&#xff1a;逻辑回归 目录 &#x1f4da;正则化 &#x1f407;过拟合的问题 &#x1f407;代价函数 &#x1f407;正则化线性回归 &#x1f407;正则化的逻辑回归模型 &#x1f4da;模型评估方法 &#x1f407;留出法&#xff08;hold-out&#xff09; &#…...

python迭代器详解

不懂的问题&#xff1a;什么是协变、逆变&#xff1f;渐进式&#xff1f; _T_co TypeVar("_T_co", covariantTrue) # Any type covariant containers.作者&#xff1a;20岁爱吃必胜客&#xff08;坤制作人&#xff09;&#xff0c;近十年开发经验, 跨域学习者&…...

关于Docker逃逸

关于Docker逃逸 文章目录关于Docker逃逸前言一、判断是否为docker容器&#xff1f;二、privileged特权模式启动容器逃逸三、 Docker Remote API未授权访问逃逸四、危险挂载导致Docker逃逸五、危险挂载Docker Socket逃逸六、 挂载宿主机procfs逃逸七、脏牛漏洞来进行docker逃逸八…...

@Autowired和@Resource区别

Autowired和Resource到底有什么区别 Autowired 和 Resource 都是用来实现依赖注入的注解&#xff08;在 Spring/Spring Boot 项目中&#xff09;&#xff0c;但二者却有着 5 点不同&#xff1a; 来源不同&#xff1a;Autowired 来自 Spring 框架&#xff0c;而 Resource 来自…...

动态内存管理详细讲解

目录 1.为什么存在动态内存分配 2. 动态内存函数的介绍 2.1 malloc和free 2.2 calloc 2.3 realloc 今天要和大家分享的内容是的动态内存管理&#xff0c;我们先从他的定义入手学习。 1.为什么存在动态内存分配 我们到现在已经掌握了内存开辟的方式就是要么创建一个变量…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...