【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

相关推荐
摸鱼的春哥5 小时前
10年3次大失败,他从“罪人”输成了中年人的“白月光”
游戏
SmalBox6 小时前
【光照】Unity中的[经验模型]
unity·渲染
2303_Alpha7 小时前
SpringBoot
笔记·学习
萘柰奈8 小时前
Unity学习----【进阶】TextMeshPro学习(三)--进阶知识点(TMP基础设置,材质球相关,两个辅助工具类)
学习·unity
沐矢羽8 小时前
Tomcat PUT方法任意写文件漏洞学习
学习·tomcat
好奇龙猫8 小时前
日语学习-日语知识点小记-进阶-JLPT-N1阶段蓝宝书,共120语法(10):91-100语法+考え方13
学习
Yasin Chen8 小时前
Unity UI坐标说明
ui·unity
向阳花开_miemie8 小时前
Android音频学习(十八)——混音流程
学习·音视频
工大一只猿9 小时前
51单片机学习
嵌入式硬件·学习·51单片机
c0d1ng9 小时前
量子计算学习(第十四周周报)
学习·量子计算