https://docs.unity3d.com/Manual/UNetPlayersCustom.html
Сделал вот это :
1.Создал скрипт (Network Manager) , в нём вот это :
Синтаксис:
Используется csharp
using UnityEngine;
using UnityEngine.Networking;
public class NetworkManagerr : NetworkManager
{
public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId)
{
int RandoM = Random.Range(0,3);
GameObject player = (GameObject)Instantiate(playerPrefab, Vector3.zero, Quaternion.identity);
NetworkServer.AddPlayerForConnection(conn, player, playerControllerId);
if(RandoM == 1){
player.GetComponent<ChangePlayer>().Ch_1();
}
if(RandoM == 2){
player.GetComponent<ChangePlayer>().Ch_2();
}
if(RandoM == 3){
player.GetComponent<ChangePlayer>().Ch_3();
}
}
}
using UnityEngine.Networking;
public class NetworkManagerr : NetworkManager
{
public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId)
{
int RandoM = Random.Range(0,3);
GameObject player = (GameObject)Instantiate(playerPrefab, Vector3.zero, Quaternion.identity);
NetworkServer.AddPlayerForConnection(conn, player, playerControllerId);
if(RandoM == 1){
player.GetComponent<ChangePlayer>().Ch_1();
}
if(RandoM == 2){
player.GetComponent<ChangePlayer>().Ch_2();
}
if(RandoM == 3){
player.GetComponent<ChangePlayer>().Ch_3();
}
}
}
2.Создал ещё один скрипт и повесил на префаб игрока :
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class ChangePlayer : NetworkBehaviour {
public Mesh[] meshes;
public void Ch_1(){
gameObject.GetComponent<MeshFilter>().sharedMesh = meshes[0];
gameObject.GetComponent<ChangePlayer>().enabled = false;
}
public void Ch_2(){
gameObject.GetComponent<MeshFilter>().sharedMesh = meshes[1];
gameObject.GetComponent<ChangePlayer>().enabled = false;
}
public void Ch_3(){
gameObject.GetComponent<MeshFilter>().sharedMesh = meshes[2];
gameObject.GetComponent<ChangePlayer>().enabled = false;
}
}
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class ChangePlayer : NetworkBehaviour {
public Mesh[] meshes;
public void Ch_1(){
gameObject.GetComponent<MeshFilter>().sharedMesh = meshes[0];
gameObject.GetComponent<ChangePlayer>().enabled = false;
}
public void Ch_2(){
gameObject.GetComponent<MeshFilter>().sharedMesh = meshes[1];
gameObject.GetComponent<ChangePlayer>().enabled = false;
}
public void Ch_3(){
gameObject.GetComponent<MeshFilter>().sharedMesh = meshes[2];
gameObject.GetComponent<ChangePlayer>().enabled = false;
}
}
Оно работает , но вообще не так как нужно , вообщем когда запускаю Host моделька меняется , но когда присоединяется клиент то Host видит себя например как мужчину , а клиент видит его как женщину (другую модель) , вот в чём проблема.