【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

相关推荐
ellis197013 分钟前
Unity插件SafeArea Helper适配异形屏详解
unity
子春一1 小时前
Flutter for OpenHarmony:构建一个 Flutter 记忆翻牌游戏,深入解析状态管理、动画交互与经典配对逻辑
flutter·游戏·交互
nnsix1 小时前
Unity Physics.Raycast的 QueryTriggerInteraction枚举作用
unity·游戏引擎
地狱为王2 小时前
Cesium for Unity叠加行政区划线
unity·gis·cesium
wdfk_prog2 小时前
[Linux]学习笔记系列 -- [drivers][i2c]i2c-dev
linux·笔记·学习
越努力越幸运5083 小时前
CSS3学习之网格布局grid
前端·学习·css3
chillxiaohan3 小时前
GO学习记录——多文件调用
开发语言·学习·golang
Funny_AI_LAB5 小时前
AI Agent最新重磅综述:迈向高效智能体,记忆、工具学习和规划综述
人工智能·学习·算法·语言模型·agi
代码游侠6 小时前
学习笔记——Linux内核与嵌入式开发1
linux·运维·前端·arm开发·单片机·嵌入式硬件·学习
宇钶宇夕6 小时前
CoDeSys入门实战一起学习(二十八):(LD)三台电机顺起逆停程序详解—上升、下降沿使用上
单片机·嵌入式硬件·学习