Unity 创建资源管理器容器

当开发者需要在游戏中生成一个随机资源时,可以定义一个Public的类进行拖拽赋值,但当我们需要对同一资源进行多次拖拽赋值时,可以创建一个资源管理器来管理资源。

一、如何创建资源管理器

创建一个资源管理器,可以将游戏中需要的资源放在管理器中统一管理:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

[CreateAssetMenu(menuName="ManagerVarsContainer")]
public class ManagerVars : ScriptableObject {
	public List<Sprite> bgThemeSpriteList = new List<Sprite> ();
}

点击Assets/Create/CreateManagerVarsContainer按钮,会生成一个.asset后缀的文件,在上面脚本中定义的资源,会显示在这个文件的面板上,最后将Sprite的资源赋值给ManagerVarsContainer.asset的bgThemeSpriteList数组即可。

二、如何调用资源管理器

在资源管理器中定义一个静态的方法:

public static ManagerVars GetManagerVars(){
		return Resources.Load<ManagerVars> ("ManagerVarsContainer");
	}

再从其他脚本中调用ManagerVars的静态方法:

using UnityEngine;
using System.Collections;

public class BgTheme : MonoBehaviour {
	private SpriteRenderer m_SpriteRenderer;
	private ManagerVars vars;

	private void Awake(){
		vars = ManagerVars.GetManagerVars ();
		m_SpriteRenderer = GetComponent<SpriteRenderer> ();
		int ranValue = Random.Range (0, vars.bgThemeSpriteList.Count);
		m_SpriteRenderer.sprite = vars.bgThemeSpriteList [ranValue];
	}
}

备注:定义静态方法前需要在Assets中创建一个Resources的资源文件夹,将脚本ManagerVars与所生成的资源ManagerVarsContainer放置文件夹中,否则会报出超出索引范围的错误。

发布了1 篇原创文章 · 获赞 1 · 访问量 1217

猜你喜欢

转载自blog.csdn.net/weixin_36330051/article/details/104150634