天津23维预案
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.
 
 
 
 
 
 

133 lines
5.7 KiB

using UnityEngine;
using System.Collections;
using DevelopEngine;
using AX.TrackRecord;
//Author: ZCG
/// <summary>资源管理</summary>
public class ResManage : MonoSingleton<ResManage>
{
private GameObject clone;
/// <summary>资源加载</summary>
/// <param name="loadPath">资源所在的路径</param>
/// <param name="ParentPos">加载后的父物体位置</param>
public void ResourcesLoad(string loadPath, Transform ParentPos)
{
clone = Instantiate(Resources.Load(loadPath)) as GameObject;
clone.AddComponent<ParticleSystemControl>();
clone.transform.parent = ParentPos.transform;
clone.transform.localPosition = Vector3.zero;
clone.transform.localRotation = Quaternion.Euler(Vector3.zero);
clone.transform.localScale = new Vector3(1, 1, 1);
//if (!clone.GetComponent<ParticleSystemControl>())
//{
// clone.AddComponent<ParticleSystemControl>();
//}
}
private string particlePath = "";//粒子系统所在路径下的名字
/// <summary>根据枚举加载粒子系统</summary>
/// <param name="particleName">根据需要的粒子选择对应的枚举</param>
/// <param name="ParentPos">消防员/车辆的位置</param>
public void LoadParticleInEnum(ParticleEnum particleName, Transform ParentPos)
{
switch (particleName)
{
case ParticleEnum.WaterStraight://根据枚举选择加载的粒子
particlePath = "WaterStraight";//粒子系统的名称
break;
case ParticleEnum.WaterFlower:
particlePath = "WaterFlower";
break;
case ParticleEnum.WaterFog:
particlePath = "WaterFog";
break;
case ParticleEnum.Froth:
particlePath = "Froth";
break;
case ParticleEnum.DryPowder:
particlePath = "DryPowder";
break;
}
// ResourcesLoad("Prefabs/Particle/ParticlePos", TransformHelper.FindChild(ParentPos, "Hose").parent);
ResourcesLoad("Prefabs/Particle/" + particlePath, TransformHelper.FindChild(ParentPos, "Hose"));
}
/// <summary>根据字符串加载粒子系统</summary>
/// <param name="TaskNameText">TaskName.text</param>
/// <param name="ParnetPos">消防员/车辆的位置</param>
public void LoadParticleInStr(string TaskNameText,Transform ParentPos)
{
var objMessage = ParentPos.gameObject.GetComponent<ObjMessage>();
objMessage.SQ = TransformHelper.FindChild(ParentPos.transform, "Hose");
DesChilds(ParentPos.gameObject, "Hose");
switch (TaskNameText)
{
case "直流":
LoadParticleInEnum(ParticleEnum.WaterStraight, ParentPos);
objMessage.waterType = WaterType.StraightStreamWater;
break;
case "开花":
case "洗消":
LoadParticleInEnum(ParticleEnum.WaterFlower, ParentPos);
objMessage.waterType = WaterType.BloomStreamWater;
break;
case "喷雾":
LoadParticleInEnum(ParticleEnum.WaterFog, ParentPos);
objMessage.waterType = WaterType.SprayStreamWater;
break;
case "泡沫灭火":
LoadParticleInEnum(ParticleEnum.Froth, ParentPos);
objMessage.waterType = WaterType.BubbleWater;
break;
case "干粉灭火":
LoadParticleInEnum(ParticleEnum.DryPowder, ParentPos);
objMessage.waterType = WaterType.DryPowder;
break;
}
//clone.AddComponent<ParticleSystemControl>();
print(objMessage.waterType);
}
/// <summary>根据WaterType选择加载的特效</summary>
public void LoadParticleInWaterType(WaterType waterType, Transform ParentPos)
{
//var objMessage = ParentPos.gameObject.GetComponent<ObjMessage>();
//objMessage.SQ = TransformHelper.FindChild(ParentPos.transform, "Hose");
DesChilds(ParentPos.gameObject, "Hose");
switch (waterType)
{
case WaterType.StraightStreamWater:
LoadParticleInEnum(ParticleEnum.WaterStraight, ParentPos);
// objMessage.waterType = WaterType.StraightStreamWater;
break;
case WaterType.BloomStreamWater:
LoadParticleInEnum(ParticleEnum.WaterFlower, ParentPos);
// objMessage.waterType = WaterType.BloomStreamWater;
break;
case WaterType.SprayStreamWater:
LoadParticleInEnum(ParticleEnum.WaterFog, ParentPos);
// objMessage.waterType = WaterType.SprayStreamWater;
break;
case WaterType.BubbleWater:
LoadParticleInEnum(ParticleEnum.Froth, ParentPos);
// objMessage.waterType = WaterType.BubbleWater;
break;
case WaterType.DryPowder:
LoadParticleInEnum(ParticleEnum.DryPowder, ParentPos);
// objMessage.waterType = WaterType.DryPowder;
break;
}
}
/// <summary>销毁游戏物体下名字为**的所有子物体</summary>
/// <param name="ParentObj">游戏物体</param>
/// <param name="childName">该游戏物体下的孩子名称</param>
public void DesChilds(GameObject ParentObj, string childName)
{
//找到所有childName的子物体并销毁他
var Parent = TransformHelper.FindChild(ParentObj.gameObject.transform, childName);
for (int i = 0; i < Parent.childCount; i++)
{
Destroy(Parent.GetChild(i).gameObject);
}
}
}