在游戏中我们很多时候都需要查找预制体并且生成,必不可少用到Resources文件夹进行。记录一下在学习中遇到的优化方式Ps:这里是跟着祁天暄老师讲技能系统时候所学习到有需要的可以。。。。。。
在游戏中生成技能的时候我们需要根据技能名称来寻找技能预制体。
SkillData用来储存技能数据存有技能预制体名称和技能预制体。
这里技能储存在Resources/Skill目录下
代码如下
private void InitSkill(SkillData data)
{
//初始化技能,找到技能预制体
data.skillPrefab = Resources.Load<GameObject>("Skill/" + data.prefabName);
}
开始进行优化,这段代码给路径写死了如果我们改变预制体路径就需要改这段代码。
如果我们传入一个技能预制体名称就可以自动去寻找预制体的路径或许不错。
根据这个思路开始展开。
写一个小工具。
先做一个表用来储存技能预制体名称与技能预制体路径。
用特定的方式写入StreamingAssets文件夹的表中fileName + “=” + filePath。
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;
/// <summary>
///
/// </summary>
///
public class GenerateResConfig : Editor
{
//一定要加静态
[MenuItem("Tools/Resources/Generate ResCofig File")]
public static void Generate()
{
//1查找Resources目录下所有预制件
//"t:prefab"预制件文件后缀,new string[] { "Assets/Resources" }文件夹如果不写查找项目内所有预制件,查找出来的是GUID
string[] resFiles = AssetD