上海杨浦大连路地铁站单机版电子沙盘
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

172 lines
6.3 KiB

using AX.DevelopEngine;
using System;
using System.Collections;
using UnityEngine;
//Author: ZCG
/// <summary>资源管理</summary>
public class ResManage : MonoSingleton<ResManage>
{
public enum WaterType : int
{
/// <summary>
/// 空值
/// </summary>
None = 0,
/// <summary>
/// 直流水
/// </summary>
StraightStreamWater = 1,//
/// <summary>
/// 开花水
/// </summary>
BloomStreamWater = 2,//
/// <summary>
/// 喷雾水
/// </summary>
SprayStreamWater = 3,//
/// <summary>
/// 泡沫
/// </summary>
BubbleWater = 4,//
/// <summary>
/// 干粉
/// </summary>
DryPowder = 5//
}
private GameObject clone;
/// <summary>资源加载</summary>
/// <param name="loadPath">资源所在的路径</param>
/// <param name="ParentPos">加载后的父物体位置</param>
public void ResourcesLoad(string loadPath, Transform ParentPos, float scale = 0f)
{
//StartCoroutine(LoadAssetBundles.getInstance().LoadAssetByName<GameObject>(loadPath, (obj) =>
//{
// clone = Instantiate(obj);
// DesChilds(ParentPos);
// clone.transform.parent = ParentPos;
// clone.transform.localPosition = Vector3.zero;
// clone.transform.localRotation = Quaternion.Euler(Vector3.zero);
// clone.transform.localScale = new Vector3(1, 1, 1);
// var Scale = scale == 0f ? this.Scale : scale;
// clone.GetComponentInChildren<ParticleControlOfType>().SetScaleValue(Scale);
//}));
// clone = ObjectPool.Instance.GetObjByName(loadPath);
DesChilds(ParentPos);
clone = Instantiate(Resources.Load(loadPath)) as GameObject;
clone.transform.parent = ParentPos;
clone.transform.localPosition = Vector3.zero;
clone.transform.localRotation = Quaternion.Euler(Vector3.zero);
clone.transform.localScale = new Vector3(1, 1, 1);
clone.GetComponentInChildren<ParticleControlOfType>().SetScaleValue(Scale);
}
private string particlePath = "assets/prefabs/prefabs/particle/";//粒子系统所在路径下的名字
private float Scale;
/// <summary>根据枚举加载粒子系统</summary>
/// <param name="particleName">根据需要的粒子选择对应的枚举</param>t
/// <param name="ParentPos">消防员/车辆的位置</param>
public void LoadParticleInEnum(ParticleEnum particleName, Transform ParentPos, float scale = 0f)
{
switch (particleName)
{
case ParticleEnum.WaterStraight://根据枚举选择加载的粒子
particlePath = "WaterStraight";//粒子系统的名称
Scale = 1f;//.3
break;
case ParticleEnum.WaterFlower:
particlePath = "WaterFlower";
Scale = 3f;
break;
case ParticleEnum.WaterFog:
particlePath = "WaterFog";
Scale = 5f;
break;
case ParticleEnum.Froth:
particlePath = "Froth";
Scale = 6f;//5
break;
case ParticleEnum.DryPowder:
particlePath = "DryPowder";
Scale = 1f;
break;
case ParticleEnum.Decontamination:
particlePath = "Decontamination";
Scale = 3f;
break;
case ParticleEnum.None:
particlePath = "";
break;
}
Scale = scale == 0 ? Scale : scale;
if (particleName!=ParticleEnum.None)
{
ResourcesLoad("Prefab/Particle/" + particlePath, TransformHelper.FindChild(ParentPos, "Hose"), scale);
}
}
/// <summary>根据字符串加载粒子系统</summary>
/// <param name="TaskNameText">TaskName.text</param>
/// <param name="ParnetPos">消防员/车辆的位置</param>
public void LoadParticleInStr(string TaskNameText, Transform ParentPos)
{
switch (TaskNameText)
{
case "直流":
LoadParticleInEnum(ParticleEnum.WaterStraight, ParentPos);
break;
case "开花":
case "洗消":
LoadParticleInEnum(ParticleEnum.WaterFlower, ParentPos);
break;
case "喷雾":
LoadParticleInEnum(ParticleEnum.WaterFog, ParentPos);
break;
case "泡沫灭火":
LoadParticleInEnum(ParticleEnum.Froth, ParentPos);
break;
case "干粉灭火":
LoadParticleInEnum(ParticleEnum.DryPowder, ParentPos);
break;
}
}
/// <summary>根据WaterType选择加载的特效</summary>
public void LoadParticleInWaterType(WaterType waterType, Transform ParentPos)
{
//DesChilds(ParentPos.gameObject, "Hose");
switch (waterType)
{
case WaterType.StraightStreamWater:
LoadParticleInEnum(ParticleEnum.WaterStraight, ParentPos);
break;
case WaterType.BloomStreamWater:
LoadParticleInEnum(ParticleEnum.WaterFlower, ParentPos);
break;
case WaterType.SprayStreamWater:
LoadParticleInEnum(ParticleEnum.WaterFog, ParentPos);
break;
case WaterType.BubbleWater:
LoadParticleInEnum(ParticleEnum.Froth, ParentPos);
break;
case WaterType.DryPowder:
LoadParticleInEnum(ParticleEnum.DryPowder, ParentPos);
break;
}
}
/// <summary>销毁游戏物体下名字为**的所有子物体</summary>
/// <param name="ParentObj">游戏物体</param>
/// <param name="childName">该游戏物体下的孩子名称</param>
public void DesChilds(Transform Parent)
{
//找到所有childName的子物体并销毁他
// var Parent = TransformHelper.FindChild(ParentObj.gameObject.transform, childName);
//for (int i = 0; i < Parent.childCount; i++)
//{
// ObjectPool.Instance.RecycleObj(Parent.GetChild(i).gameObject);
//}
TransformHelper.DelChilds(Parent);
}
}