enemy death respawn

This commit is contained in:
2024-07-22 21:28:18 +05:30
parent 2bf623d71b
commit 399ae7d7f2
18 changed files with 113 additions and 43 deletions

View File

@@ -62,7 +62,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 2613116b8a9839f4eb8abb181b83477e, type: 2}
- {fileID: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0

View File

@@ -62,7 +62,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: ad5de8193a625af48b1318e417ae6c7e, type: 2}
- {fileID: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0

View File

@@ -62,7 +62,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 5c1e5d25177fa1740921151b338e4d3b, type: 2}
- {fileID: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0

View File

@@ -62,7 +62,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 9636898e0cabdf64d99f5040090fe41e, type: 2}
- {fileID: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0

View File

@@ -62,7 +62,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: cf8ec3e416933f743be4df134d5e44b1, type: 2}
- {fileID: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0

View File

@@ -62,7 +62,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 645f88d72b3eef14ea19d492a14cf019, type: 2}
- {fileID: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0

View File

@@ -62,7 +62,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 8e74db0c7188ac54caf60d60c6f47ad8, type: 2}
- {fileID: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0

View File

@@ -62,7 +62,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 1b30e6bfb9cebd5418e40f107af416af, type: 2}
- {fileID: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0

View File

@@ -62,7 +62,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 29a955f37eb0e3549a9a2dfdc8ebcff6, type: 2}
- {fileID: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0

View File

@@ -91,6 +91,47 @@ public class GameManager : NetworkBehaviour
Debug.LogError("Couldn't find loot data for " + type);
}
public static void OnEnemyDeath(enemyScript enemy, Vector3 spawnPos)
{
instance.onEnemyDeath(enemy,spawnPos);
}
public void onEnemyDeath(enemyScript enemy, Vector3 spawnPos)
{
if (!isServer)
{
Debug.LogError("Server function called on client. This cant happen");
return;
}
string enemyName = enemy.transform.name;
int enemyLevel = enemy.level;
NetworkServer.Destroy(enemy.gameObject);
foreach(EnemySpawnEntry entry in enemySpawns)
{
if (entry.prefab.name.Contains(enemyName.Replace("(Clone)","")))
{
StartCoroutine(SpawnLater(entry.prefab, spawnPos, 5, enemyLevel));
Debug.Log("Found enemy prefab for " + enemyName);
return;
}
}
Debug.LogError("Unable to find matching prefab for " + enemyName);
}
IEnumerator SpawnLater(GameObject go, Vector3 pos, float timer, int level)
{
yield return new WaitForSeconds(timer);
GameObject newGo = Instantiate(go, pos, Quaternion.identity);
NetworkServer.Spawn(newGo);
newGo.GetComponent<enemyScript>().SetLevel(level);
}
}

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 5b07afdbcf13e43438545d591cfd2e4b
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -104,7 +104,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 2613116b8a9839f4eb8abb181b83477e, type: 2}
- {fileID: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0

View File

@@ -395,16 +395,36 @@ public class enemyScript : NetworkBehaviour
GameObject newLoot = Instantiate(GameManager.instance.GetRandomLoot(), lootSpawnPos, Quaternion.identity);
NetworkServer.Spawn(newLoot);
yield return new WaitForSecondsRealtime(5);
transform.position = defaultPos;
yield return new WaitForSecondsRealtime(3);
if (!isServer)
{
CmdDie();
}
else
{
GameManager.OnEnemyDeath(this, defaultPos);
}
/* transform.position = defaultPos;
health = (int)maxHealth;
magicalHealth = (int)maxHealth;
magicalHealth = (int)maxHealth;*/
//animationString = "Idle";
}
[Command]
void CmdDie()
{
GameManager.OnEnemyDeath(this,defaultPos);
}
public void OnHealthChange(int oldVlaue, int newValue){
healthBar.SetHealth(newValue,maxHealth);

View File

@@ -694,7 +694,7 @@ public class playerNetwork : NetworkBehaviour
startClient.instance.networkManager.StopClient();
SceneManager.LoadScene("GameLogin");
#if UNITY_EDITOR
#if UNITY_EDITOR || UNITY_SERVER
#else
PlayGamesPlatform.Instance.SignOut();
Firebase.Auth.FirebaseAuth.DefaultInstance.SignOut();