This commit is contained in:
2025-06-16 15:14:23 +02:00
committed by devbeni
parent 60fe4620ff
commit 4ff561284f
3174 changed files with 428263 additions and 0 deletions

View File

@ -0,0 +1,62 @@
using UnityEngine;
using Mirror;
namespace Mirror.Examples.CharacterSelection
{
public class CharacterSelection : NetworkBehaviour
{
public Transform floatingInfo;
[SyncVar]
public int characterNumber = 0;
public TextMesh textMeshName;
[SyncVar(hook = nameof(HookSetName))]
public string playerName = "";
void HookSetName(string _old, string _new)
{
//Debug.Log("HookSetName");
AssignName();
}
[SyncVar(hook = nameof(HookSetColor))]
public Color characterColour;
private Material cachedMaterial;
public MeshRenderer[] characterRenderers;
void HookSetColor(Color _old, Color _new)
{
//Debug.Log("HookSetColor");
AssignColours();
}
public void AssignColours()
{
foreach (MeshRenderer meshRenderer in characterRenderers)
{
cachedMaterial = meshRenderer.material;
cachedMaterial.color = characterColour;
}
}
void OnDestroy()
{
if (cachedMaterial) { Destroy(cachedMaterial); }
}
public void AssignName()
{
textMeshName.text = playerName;
}
// To change server controlled sync vars, clients end Commands, and the hooks will fire
// Although not used in this example, we could change some character aspects without replacing current prefab.
//[Command]
//public void CmdSetupCharacter(string _playerName, Color _characterColour)
//{
// playerName = _playerName;
// characterColour = _characterColour;
//}
}
}