Ich habe mehrere Techniken ausprobiert, aber immer noch kein Ergebnis. Diese post schien vielversprechend, aber ich habe immer noch die gleichen Probleme. Der Host kann die Farbe ändern, jedoch nicht für die Client-Player. Der Code sieht so aus.UNET Änderung der Textur des Kindes Objekt für Kunden
public List<GameObject> bases = new List<GameObject>();
[SyncVar]
public Texture redTexture;
[SyncVar]
public Texture blueTexture;
[SyncVar]
GameObject objID;
NetworkIdentity objNetID;
public void CheckTexture()
{
if (isLocalPlayer)
{
for (int i = 0; i < bases.Count; ++i)
{
var tempScript = bases[i].GetComponent<BaseScoreScript>();
if (tempScript.owner == "blue")
{
objID = bases[i];
CmdCheckText(objID, blueTexture);
}
}
}
}
[ClientRpc]
void RpcChangeTexture(GameObject obj, Texture text)
{
obj.GetComponentInChildren<MeshRenderer>().material.mainTexture = text;
}
[Command]
void CmdCheckText(GameObject obj, Texture texture)
{
objNetID = obj.GetComponent<NetworkIdentity>();
objNetID.AssignClientAuthority(connectionToClient);
RpcChangeTexture(obj, texture);
objNetID.RemoveClientAuthority(connectionToClient);
}
Alle Vorschläge wären hilfreich. Vielen Dank im Voraus.
http://stackoverflow.com/questions/34191207/unet-multi-player-game-having-both-player-interact-with-gameobject-changes-sy – CaptObvious