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
133 lines
5.7 KiB
3 years ago
|
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);
|
||
|
}
|
||
|
}
|
||
|
}
|