Я создал свой собственный сервер вместо использования сетевого Unity. Но у меня проблема с отправкой информации о маркере на сервер, чтобы другие игроки в сети могли видеть маркеры, когда кто-то стреляет. Вот код, который у меня есть:
string ImPlayer = null;
float[] PlayerPosVec = new float[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
static Socket sock;
void Start()
{
anim = GetComponent<Animator>();
sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint IPaddress = new IPEndPoint(IPAddress.Parse("130.229.156.6"), 13000);
try
{
sock.Connect(IPaddress);
}
catch
{
Debug.Log("Unable to connect");
}
byte[] MSGFromServer = new byte[1024];
int size = sock.Receive(MSGFromServer);
string inPut = System.Text.Encoding.ASCII.GetString(MSGFromServer, 0, size);
Debug.Log("Jag ar player " + inPut);
ImPlayer = inPut;
InvokeRepeating("Send", 1.0f, 0.125f);
}
// weapon variables
public float bulletSpeed = 10.0f;
public float bulletDestroyTime = 5.0f; // after 5-sec dissapear (bullet)
public GameObject bulletObject;
public Transform bulletSpawnPoint;
void Start()
{
}
void Update()
{
Shoot();
}
void Shoot()
{
if (Input.GetKeyDown(KeyCode.Mouse0))
{
var bullet = (GameObject)Instantiate(
bulletObject,
bulletSpawnPoint.position,
bulletSpawnPoint.rotation);
bullet.GetComponent<Rigidbody>().velocity = bullet.transform.forward * bulletSpeed;
Destroy(bullet, bulletDestroyTime);
}
}