fix: change ships color when spawning
This commit is contained in:
parent
cca4b75827
commit
2879e82429
@ -95,17 +95,7 @@ namespace Managers
|
|||||||
|
|
||||||
foreach (Player p in players)
|
foreach (Player p in players)
|
||||||
{
|
{
|
||||||
GameObject shipObject = Instantiate(p.character.shipPrefab);
|
SpawnCharacter(p, MatchCamera, MatchArena);
|
||||||
p.spawnedCharacter = shipObject;
|
|
||||||
shipObject.TryGetComponent(out Ship ship);
|
|
||||||
ship.state = new ShipHandling.ShipState();
|
|
||||||
ship.cameraOperator = MatchCamera.GetComponent<CameraOperator>();
|
|
||||||
shipObject.transform.SetParent(MatchArena.transform, false);
|
|
||||||
shipObject.transform.localPosition =
|
|
||||||
MatchManager.G.ArenaProperties.spawnPositions[p.playerNumber - 1];
|
|
||||||
|
|
||||||
shipObject.transform.localScale = new Vector3();
|
|
||||||
Tween.Scale(shipObject.transform, new Vector3(0.7f, 0.7f, 0.7f), 1f);
|
|
||||||
spawned.Add(p);
|
spawned.Add(p);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -130,7 +120,9 @@ namespace Managers
|
|||||||
GameObject shipObject = Instantiate(player.character.shipPrefab);
|
GameObject shipObject = Instantiate(player.character.shipPrefab);
|
||||||
player.spawnedCharacter = shipObject;
|
player.spawnedCharacter = shipObject;
|
||||||
shipObject.TryGetComponent(out Ship ship);
|
shipObject.TryGetComponent(out Ship ship);
|
||||||
|
ship.props = player.character;
|
||||||
ship.state = new ShipHandling.ShipState();
|
ship.state = new ShipHandling.ShipState();
|
||||||
|
ApplyShipColor(player.character.shipHullColor, ship.bodyMeshRenderer);
|
||||||
ship.cameraOperator = MatchCamera.GetComponent<CameraOperator>();
|
ship.cameraOperator = MatchCamera.GetComponent<CameraOperator>();
|
||||||
shipObject.transform.SetParent(MatchArena.transform, false);
|
shipObject.transform.SetParent(MatchArena.transform, false);
|
||||||
shipObject.transform.localPosition =
|
shipObject.transform.localPosition =
|
||||||
@ -144,6 +136,33 @@ namespace Managers
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SpawnCharacter(Player p, GameObject camera, GameObject arena)
|
||||||
|
{
|
||||||
|
Log.Debug($"Spawning ship:{p.character.shipName} for player: {p.playerName}");
|
||||||
|
GameObject shipObject = Instantiate(p.character.shipPrefab);
|
||||||
|
Log.Debug($"Instantiated prefab");
|
||||||
|
p.spawnedCharacter = shipObject;
|
||||||
|
shipObject.TryGetComponent(out Ship ship);
|
||||||
|
ship.props = p.character;
|
||||||
|
ship.state = new ShipHandling.ShipState();
|
||||||
|
ship.cameraOperator = camera.GetComponent<CameraOperator>();
|
||||||
|
ApplyShipColor(p.character.shipHullColor, ship.bodyMeshRenderer);
|
||||||
|
Log.Debug($"Applied ships color");
|
||||||
|
shipObject.transform.SetParent(arena.transform, false);
|
||||||
|
shipObject.transform.localPosition =
|
||||||
|
MatchManager.G.ArenaProperties.spawnPositions[p.playerNumber - 1];
|
||||||
|
|
||||||
|
shipObject.transform.localScale = new Vector3();
|
||||||
|
Log.Debug($"Set ships location");
|
||||||
|
Tween.Scale(shipObject.transform, new Vector3(0.7f, 0.7f, 0.7f), 1f);
|
||||||
|
Log.Debug($"Started ship spawn tween");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ApplyShipColor(Color color, MeshRenderer renderer)
|
||||||
|
{
|
||||||
|
MaterialPropertyBlock materialPropertyBlock = new();
|
||||||
|
materialPropertyBlock.SetColor("_BaseColor", color);
|
||||||
|
renderer.SetPropertyBlock(materialPropertyBlock);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user