游戏优化第二版 (第二章 脚本策略)

简述

本章讲探索性能优化用于下述领域的方式:

  • 访问组件
  • 组件回调(Update Awake等)
  • 协程
  • GameObject和Transform的使用
  • 对象间通信
  • 数学计算
  • 场景和预制加载等的反序列化

使用最快的方法获取组件

GetComponent()方法有一些变体,他们的性能消耗不同,因此要谨慎地调用该方法的最高效版本。3个可用的重载版本GetComponent(string), GetComponent<T>()和GetComponent(typeof(T)).最好使用的是

 GetComponent<T>()

移除空的回调定义

最常使用的四个回调:Awake(),Start().Update().FixedUpdate().
如果没有用到,一定要记得去掉空调用

缓存组件的引用

这个也没有什么好说的,基本就是关于GetConmponet的调用,如果频繁,最好有一个全局变量进行引用。

这个其实很重要, 尤其是在lua中,使用也很频繁,要学会用local来替代多个.的调用。

local toolList = DataCenter.jibanData:giftToolList();

共享计算输出

每次执行复杂的操作时候,要考虑是否从多个位置调用它,但总是得到相同的输出。简单来说,是否需要重复调用。

Update、Coroutines、InvokeRepeating

如果不是频繁调用,推荐后面两个,节省更多性能,其中最后一个更好

InvokeRepeating的停用方法是在给定的monoBehavior中调用cancelInvoke(),另一种方法是销毁对应的物体,注意不是禁用

using UnityEngine;
using System.Collections;

public class DelayScript : MonoBehaviour {
    //当前时间
    private float nowTime;
    //执行重复方法的次数
    private int count;
    // Use this for initialization
    void Start () {
        nowTime = Time.time;
        Debug.Log("时间点:"+nowTime);
        this.Invoke("setTimeOut", 3.0f);
        this.InvokeRepeating("setInterval", 2.0f, 1.0f);
    }

    private void setTimeOut()
    {
        nowTime = Time.time;
        Debug.Log("执行延时方法:" + nowTime);
    }

    private void setInterval()
    {
        nowTime = Time.time;
        Debug.Log("执行重复方法:" + nowTime);
        count += 1;
        if(count==5)
            this.CancelInvoke();
    }
}

更快的空引用检查

这个倒是挺稀奇的,之前没有考虑过
以前:

if(gameObject != null){
}

现在:

if(!System.Object.ReferenceEquals(gameObject,null)){
}

避免从GameObject中去除字符串属性

通常不要用.name 进行比较,考虑用tag,而对于tag的比较,要考虑GameObject提供的CompareTag(),这个不会额外占用内存

使用合适的数据结构

这个到没啥,就是列表和字典的区别,即采用顺序存储还是链式存储

数据集介绍:野生动物目标检测数据集 一、基础信息 数据集名称:野生动物目标检测数据集 图片数量: - 训练集:4,181张图片 - 验证集:1,212张图片 - 测试集:610张图片 总计:6,003张航拍及自然场景图片 分类类别: 涵盖23类野生动物,包括: - 濒危物种(北极熊、犀牛、熊猫) - 大型哺乳动物(大象、河马、长颈鹿) - 猛禽类(鹰、鹦鹉、企鹅) - 食肉动物(狮子、猎豹、美洲豹) - 草食动物(斑马、鹿、山羊) 标注格式: YOLO格式标注,包含边界框坐标与类别标签,适配主流目标检测框架。 数据特性: 航拍视角与地面视角相结合,包含动物群体活动和个体行为场景。 二、适用场景 生态保护监测系统: 构建野生动物种群识别系统,支持自然保护区自动监测动物迁徙和栖息地活动。 智能林业管理: 集成至森林巡护无人机系统,实时检测濒危物种并预警盗猎行为。 动物行为研究: 为科研机构提供标注数据支撑,辅助研究动物种群分布与行为特征。 自然纪录片制作: AI预处理工具开发,快速定位视频素材中的特定物种片段。 教育科普应用: 用于野生动物识别教育软件,支持互动式物种学习功能开发。 三、数据集优势 物种覆盖全面: 包含非洲草原系、极地系、森林系等23类特色动物,特别涵盖10种IUCN红色名录物种。 多场景适配: 整合航拍与地面视角数据,支持开发不同观测高度的检测模型。 标注质量可靠: 经动物学专家校验,确保复杂场景(群体/遮挡)下的标注准确性。 模型兼容性强: 原生YOLO格式可直接应用于YOLOv5/v7/v8等系列模型训练。 生态研究价值: 特别包含熊科动物(棕熊/北极熊/熊猫)细分类别,支持濒危物种保护研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值