【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

相关推荐
艾莉丝努力练剑1 小时前
【C语言】学习过程教训与经验杂谈:思想准备、知识回顾(三)
c语言·开发语言·数据结构·学习·算法
ZZZS05161 小时前
stack栈练习
c++·笔记·学习·算法·动态规划
位东风2 小时前
【c++学习记录】状态模式,实现一个登陆功能
c++·学习·状态模式
Star Curry2 小时前
【新手小白的嵌入式学习之路】-STM32的学习_GPIO 8种模式学习心得
stm32·嵌入式硬件·学习
cver1232 小时前
CSGO 训练数据集介绍-2,427 张图片 AI 游戏助手 游戏数据分析
人工智能·深度学习·yolo·目标检测·游戏·计算机视觉
witton3 小时前
Go语言网络游戏服务器模块化编程
服务器·开发语言·游戏·golang·origin·模块化·耦合
AI视觉网奇3 小时前
rag学习笔记
笔记·学习
两水先木示3 小时前
【Unity3D】微信小游戏适配安全区域或胶囊控件(圆圈按钮)水平高度一致方案
unity·微信小游戏·安全区域·ui适配·胶囊控件·safearea
枯萎穿心攻击3 小时前
ECS由浅入深第三节:进阶?System 的行为与复杂交互模式
开发语言·unity·c#·游戏引擎
不绝1914 小时前
怪物机制分析(有限状态机、编辑器可视化、巡逻机制)
网络·游戏·unity·游戏引擎