【Unity】unity学习扫盲知识点

1、建议检查下SystemInfo的引用。这个是什么

Unity的SystemInfo类提供了一种获取关于当前硬件和操作系统的信息的方法。这包括设备类型,操作系统,处理器,内存,显卡,支持的Unity特性等。使用SystemInfo类非常简单。它的所有属性和方法都是静态的,所以你

不需要创建SystemInfo的对象。

深入了解Unity的SystemInfo类:一份详细的技术指南(一)_unity systeminfo-CSDN博客

2、GPU带宽是什么?

显存带宽。显存带宽是指GPU读写其专用内存的速度。如果我们的游戏速度受限于显存带宽,通常可能是我们使用的纹理太大,以至于GPU无法快速处理

内存带宽是 GPU 可以从内存中执行读取和写入的速率

显存带宽就是80GB/s

3、mipmap 是什么

Mipmap中每一个层级的小图都是主图的一个特定比例的缩小细节的复制品。

虽然在某些必要的视角,主图仍然会被使用,来渲染完整的细节。

但是当贴图被缩小或者只需要从远距离观看时,mipmap就会转换到适当的层级。事实上,在三线性过滤(trilinear filtering)起作用时,会在两个相近的层级之间切换。

mipmap的主要作用便是模型的贴图会根据摄像机距离模型的远近而调整不同质量的贴图显示,以达到优化目的

4、GPU Skin 是什么?

顶点动画,将动画渲染到纹理,通过顶点shader渲染

Gpu Instance

只有使用相同网格 和 相同材质的物体,才可以被 Instance 为一个对象。

在顶点shader中渲染出过个,

  • GPU Instance:针对同一个Mesh多次渲染,是图形框架提供的功能。

https://zhuanlan.zhihu.com/p/524285662

UNITY_ACCESS_INSTANCED_PROP 访问每个instance的单独属性 float4 col= UNITY_ACCESS_INSTANCED_PROP(Props, _Color);

5、垂直同步 是什么?

项目用到动态帧率,60/30频繁切换,关了垂直同步的。在30切60时,若场景有大量GPU Skin,30到60就特别慢,大概6-7秒。

Edit--Project Settings--VSync Count

刷新率指的是显示器的刷新率,60Hz就是屏幕一秒会刷新60次画面

缓冲区是显卡的缓冲区,显卡渲染好一张画面就会把画面存储在显卡的显存中

打开垂直同步后,当显示器尚未完成一帧画面刷新时候,前后缓冲区不允许交换,显示器刷新完一帧画面时,缓冲区才可以进行交换,不会在上一帧画面未显示完全就开始显示下一帧造成画面撕裂,也就是显卡画面刷新速度等待显示器刷新速度,使画面更流畅。

关闭垂直同步

允许GPU不受刷新率限制进行渲染,并可以在单个刷新间隔对多个渲染帧进行扫描输出,会产生画面撕裂

开启垂直同步

限制GPU最大渲染速率为显示器的最大刷新率,并防止撕裂,但是由于渲染速率受限,延时可能较长且性能较低。另外,如果GPU渲染速率低于刷新率

6、OnPostprocessAllAssets 怎么使用?

OnPostprocessAllAssets会在每次资源的增删改后自动执行,那么就有了自动设置asset bundle name的进阶版。

复制代码
using UnityEngine;
using System.Collections;
using UnityEditor;
 
public class AutoGenerateAssetBundleNameImproved : AssetPostprocessor
{
    static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
    {
        for (int i = 0; i < importedAssets.Length; ++i)
        {
            Debug.Log("Imported asset: " + importedAssets[i]);
        }
        for (int i = 0; i < deletedAssets.Length; ++i)
        {
            Debug.Log("Deleted asset: " + deletedAssets[i]);
        }
        for (int i = 0; i < movedAssets.Length; ++i)
        {
            Debug.Log("Moved Asset: " + movedAssets[i] + " ---- From: " + movedFromAssetPaths[i]);
        }
    }
}

7、aa怎么从streaming加载?

Addressables.LoadAsset

相关推荐
lifallen2 分钟前
Skill 的生命周期:问题消失以后
人工智能·学习·ai·ai编程
千谦阙听11 分钟前
C++类和对象(中):默认成员函数、构造与析构、拷贝构造、运算符重载
开发语言·c++·学习
Agudamu11611 小时前
AI 视频学习笔记工具拆解:4款工具谁能把视频变成复习资料
人工智能·学习·音视频
HugoStudio_SWAN1 小时前
洛谷 B4500 / B4449 / B3843 凯撒密码、密码强度与密码合规——加密与安全的三道门
c++·学习·程序人生·算法·安全
一条破秋裤3 小时前
16_TIM编码器接口测速
笔记·stm32·学习
tju新生代魔迷3 小时前
Verilog HDL 学习笔记(十)| 第10章 时序和延迟
笔记·学习·fpga开发
幼儿园蛋小黄3 小时前
嵌入式学习总结:从入门到实战的完整路径
学习
-To be number.wan3 小时前
编译原理第三章:编译器是怎么“认字“的?——词法分析全解析
学习·编辑器
yangmu32033 小时前
《黎明行者之血》MOD整合包保姆级安装与使用指南
游戏·游戏程序
Madokaly4 小时前
DOTween的Vector3Plugin
unity