Я занимаюсь изучением некоторых основ Unity 5, UNET и сетей. Я сделал простую 3D-игру, в которой вы идете и меняете цвета объектов. Но сейчас я хочу сделать это многопользовательской, и у меня много проблем с выяснением того, как отправлять изменения по сети, чтобы все игроки могли видеть изменение цвета одного игрока.Как синхронизировать свойства Game Player в Unet/Unity5?
Часть вопроса состоит в том, что было трудно найти ответ, используя новый сетевой механизм UNET. И иногда я сталкиваюсь с ответами, которые для более старшего.
Итак, главный вопрос заключается в том, как изменить свойства свойства GameIbject, не являющегося игроком? Цвет, форма, размер и т.д ..
Вот код, я сейчас - и у меня было много разных версий, так что я просто выкладываю текущий:
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
public class Player_Paint : NetworkBehaviour {
private int range = 200;
[SerializeField] private Transform camTransform;
private RaycastHit hit;
[SyncVar] private Color objectColor;
[SyncVar] private GameObject objIdentity;
void Update() {
CheckIfPainting();
}
void CheckIfPainting(){
if(Input.GetMouseButtonDown(0)) {
if (Physics.Raycast (camTransform.TransformPoint (0, 0, 0.5f), camTransform.forward, out hit, range)) {
string objName = hit.transform.name;
CmdPaint(objName);
}
}
}
[ClientRpc]
void RpcPaint(){
objIdentity.GetComponent<Renderer>().material.color = objectColor;
}
[Command]
void CmdPaint(string name) {
objIdentity = GameObject.Find (name); //tell us what was hit
objectColor = new Color(Random.value, Random.value, Random.value, Random.value);
RpcPaint();
}
}
Я пытался набор дополнительных решений, включая написание отдельного сценария для объектов, цвет которых я хочу изменить, включая функции [SyncVar] и hook. Я также попробовал Debug.Log по каждой из функций, которые я ожидаю обновить на объектах, и они выполняются с ожидаемыми данными.
Я действительно не знаю, что еще делать. Я чувствую, что это ОЧЕНЬ простая вещь, которую я хочу сделать, но я не сталкивался с синхронизацией non-player GameObject в любых вопросах, учебниках или других ресурсах. Любые идеи вообще были бы полезны, спасибо.
«Я чувствую, что это очень простая вещь, которую я хочу сделать, но я не встречал синхронизируется неигровых GameObject в любой вопросы, учебники и другие ресурсы.» Мои разочарования ТОЧНО. –