1
This commit is contained in:
@@ -107,6 +107,7 @@ public class MonsterContral : MonoBehaviour
|
||||
/// <summary>主相机缓存</summary>
|
||||
protected Camera mainCamera;
|
||||
|
||||
|
||||
// ================================================================
|
||||
// Unity 生命周期
|
||||
// ================================================================
|
||||
@@ -121,13 +122,12 @@ public class MonsterContral : MonoBehaviour
|
||||
hurt.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void Start()
|
||||
public virtual void OnEnable()
|
||||
{
|
||||
fishenum = (FishTypeEnum)monsterData.fishTypeConfig.fishType;
|
||||
uirootRect = UIManager.Instance.uiRoot.GetComponent<RectTransform>();
|
||||
mainCamera = Camera.main;
|
||||
|
||||
moveTime=0f;
|
||||
InitAnimList();
|
||||
ChangeState(CharacterStateType.move);
|
||||
}
|
||||
@@ -136,11 +136,11 @@ public class MonsterContral : MonoBehaviour
|
||||
{
|
||||
OnUpdate(currState);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 销毁时自动从 CreateFishManager 的三个字典中移除自身,避免野指针。
|
||||
/// </summary>
|
||||
public virtual void OnDestroy()
|
||||
public virtual void OnDisable()
|
||||
{
|
||||
if (CreateFishManager.Instance == null) return;
|
||||
|
||||
@@ -197,7 +197,7 @@ public class MonsterContral : MonoBehaviour
|
||||
fishenum = (FishTypeEnum)monsterData.fishTypeConfig.fishType;
|
||||
|
||||
// 路径结束后自动销毁
|
||||
Destroy(gameObject, time);
|
||||
Pool.Instance.Return(gameObject, time);
|
||||
}
|
||||
|
||||
// ================================================================
|
||||
@@ -391,8 +391,8 @@ public class MonsterContral : MonoBehaviour
|
||||
{
|
||||
AudioManager.Instance.PlayerFX(res.dieAudio[0]);
|
||||
}
|
||||
|
||||
Destroy(gameObject);
|
||||
Pool.Instance.Return(gameObject);
|
||||
//Destroy(gameObject);
|
||||
}
|
||||
|
||||
// ================================================================
|
||||
|
||||
@@ -31,9 +31,9 @@ public class MonsterControl_BossBase : MonsterContral
|
||||
ZhuCam = GameManager.Instance.ZhuCam;
|
||||
|
||||
}
|
||||
public override void Start()
|
||||
public override void OnEnable()
|
||||
{
|
||||
base.Start();
|
||||
base.OnEnable();
|
||||
FishResourcesData fishResourcesData;
|
||||
|
||||
fishResourcesData = FishResourcesData.fishResourcesDatasDic[fishTypeID];
|
||||
@@ -135,6 +135,7 @@ public class MonsterControl_BossBase : MonsterContral
|
||||
}
|
||||
public override void DieFish(RoomKillNotice obj = null)
|
||||
{
|
||||
|
||||
GameManager.Instance.cameraShake.ShakePresets.Explosion2D(3f, 4f, 1f);
|
||||
if (obj != null)
|
||||
{
|
||||
@@ -150,7 +151,7 @@ public class MonsterControl_BossBase : MonsterContral
|
||||
int index = Random.Range(0, v.Count);
|
||||
AudioManager.Instance.PlayerFX(v[index]);
|
||||
}
|
||||
|
||||
Pool.Instance.Return(gameObject);
|
||||
|
||||
|
||||
}
|
||||
@@ -220,9 +221,10 @@ public class MonsterControl_BossBase : MonsterContral
|
||||
BezierCurveData bezierCurveData = MonsterMoveLine.dic_BezierCurveDatas[bossName + pathId];
|
||||
monsterData.moveLine.Init(bezierCurveData, Time);
|
||||
}
|
||||
public override void OnDestroy()
|
||||
public override void OnDisable()
|
||||
{
|
||||
base.OnDestroy();
|
||||
base.OnDisable();
|
||||
|
||||
GameManager.Instance.StartCoroutine(yanchidie());
|
||||
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ using TMPro;
|
||||
using Unity.Collections;
|
||||
using Unity.Jobs;
|
||||
using UnityEngine;
|
||||
using static UnityEditor.FilePathAttribute;
|
||||
using Random = UnityEngine.Random;
|
||||
|
||||
/// <summary>
|
||||
@@ -542,6 +543,10 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
public void CloseSpawnSystem()
|
||||
{
|
||||
spawnList = null;
|
||||
spawnDic = null;
|
||||
yz_FishConfig_Line_Dic = null;
|
||||
yz_FishConfig_Line = null;
|
||||
yz_FishConfig_Line_Dic1 = null;
|
||||
if (fishRoot == null) return;
|
||||
|
||||
for (int i = fishRoot.childCount - 1; i >= 0; i--)
|
||||
@@ -648,8 +653,9 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
return false;
|
||||
}
|
||||
|
||||
var prefab = FishResourcesData.GetFishPrefab(int.Parse(fishType.fishNumber));
|
||||
var fish = Instantiate(prefab, new Vector3(9999, 9999, 0), prefab.transform.rotation, fishRoot);
|
||||
//var prefab = FishResourcesData.GetFishPrefab(int.Parse(fishType.fishNumber));
|
||||
//var fish = Instantiate(prefab, new Vector3(9999, 9999, 0), prefab.transform.rotation, fishRoot);
|
||||
var fish = Pool.Instance.Get(int.Parse(createFishData.fishNumber), new Vector3(9999, 9999, 0), Quaternion.identity,fishRoot);
|
||||
|
||||
var mc = fish.GetComponent<MonsterContral>() ?? fish.AddComponent<MonsterContral>();
|
||||
mc.monsterData.fishTypeConfig = FishDatas[createFishData.fishNumber];
|
||||
@@ -775,7 +781,8 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
var rotation = Quaternion.Euler(
|
||||
prefab.transform.eulerAngles + Vector3.forward * angle);
|
||||
|
||||
var fish = Instantiate(prefab, pos, rotation, fishRoot);
|
||||
//var fish = Instantiate(prefab, pos, rotation, fishRoot);
|
||||
var fish = Pool.Instance.Get(int.Parse(yz.fishNumber), pos, rotation, fishRoot);
|
||||
var mc = fish.GetComponent<MonsterContral>();
|
||||
|
||||
mc.monsterData.fishTypeConfig = FishDatas[yz.fishNumber];
|
||||
@@ -804,7 +811,9 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
var rotation = Quaternion.Euler(
|
||||
prefab.transform.eulerAngles + Vector3.forward * angle);
|
||||
|
||||
var fish = Instantiate(prefab, pos, rotation, fishRoot);
|
||||
//var fish = Instantiate(prefab, pos, rotation, fishRoot);
|
||||
var fish = Pool.Instance.Get(int.Parse(yz.fishNumber), pos, rotation, fishRoot);
|
||||
|
||||
var mc = fish.GetComponent<MonsterContral>();
|
||||
|
||||
mc.monsterData.fishTypeConfig = FishDatas[yz.fishNumber];
|
||||
@@ -828,7 +837,9 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
var fish = Instantiate(prefab, pos, prefab.transform.rotation, fishRoot);
|
||||
//var fish = Instantiate(prefab, pos, prefab.transform.rotation, fishRoot);
|
||||
var fish = Pool.Instance.Get(int.Parse(yz.fishNumber), pos, Quaternion.identity, fishRoot);
|
||||
|
||||
var mc = fish.GetComponent<MonsterContral>() ?? fish.AddComponent<MonsterContral>();
|
||||
|
||||
mc.monsterData.fishTypeConfig = FishDatas[yz.fishNumber];
|
||||
|
||||
@@ -51,6 +51,8 @@ public class GameManager : MonoSingleton<GameManager>
|
||||
protected override async void Awake()
|
||||
{
|
||||
|
||||
AudioResourcesData audioResourcesData=new AudioResourcesData();
|
||||
|
||||
Application.runInBackground = true;
|
||||
|
||||
base.Awake();
|
||||
|
||||
@@ -75,6 +75,7 @@ public class FishResourcesData
|
||||
|
||||
public static async void LoadFishAssetsData()
|
||||
{
|
||||
Pool.Instance.Clear();
|
||||
if (fishPrefabDic != null)
|
||||
return;
|
||||
|
||||
@@ -90,6 +91,8 @@ public class FishResourcesData
|
||||
{
|
||||
fishPrefabDic.Add(FishResourcesPrefabsDic[prefab.name], prefab);
|
||||
prefab.GetComponent<MonsterContral>().fishTypeID = FishResourcesPrefabsDic[prefab.name];
|
||||
|
||||
Pool.Instance.dic.Add(FishResourcesPrefabsDic[prefab.name], new PoolData(prefab,CreateFishManager.Instance.fishRoot.gameObject));
|
||||
}
|
||||
}, MergeMode.Intersection).Task;
|
||||
Debug.Log($"加载完成,共 {fishPrefabDic.Count} 个鱼Prefab");
|
||||
|
||||
@@ -538,5 +538,9 @@
|
||||
{
|
||||
"AudioID": 61105,
|
||||
"AudioResourcesPath": "sd_t1_Shell_skill2"
|
||||
},
|
||||
{
|
||||
"AudioID": 69001,
|
||||
"AudioResourcesPath": "sound_ui_gow_bgm"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user