Маленькая сборка вопросов, которые достаточно часто видел на форуме:
Подраздел мультиплеер (стандартная сеть Юни, используемый ЯП C#
)
В: Как сделать, что бы я видел через свою камеру?
О: Использовать проверку, чей объект осуществляется с помощью isMine
Пример убийства камеры (скрипт и камера на одном объекте):
Используется csharp
void Start()
{
if (networkView.isMine)
{
Debug.Log("This object is my");
}
else
{
Destroy(camera);
}
}
Аналогичный пример, только камера остается, она только выключается, мало ли надо будет включить?
Используется csharp
void Start()
{
if (networkView.isMine)
{
Debug.Log("This object is my");
}
else
{
camera.enabled = false;
}
}
В: Как управлять только своим персонажем?
О: Как и выше, нужно проверить чей это объект, и если он не принадлежит Вам (чужое нельзя брать!) - отключить его
Пример:
Используется csharp
void Start()
{
if (!networkView.isMine)
{
GetComponent<SomeScript>().enabled = false;
}
}
Маленькое пояснение:
Первое – вместо SomeScript нужно написать название скрипта, который хотим отключить.
Второе – GetComponent только если такой скрипт есть на этом объекте.
Третье – если нужно отключить именно этот скрипт, можно обратиться так this.enabled = false;
В: Как передать какую-то переменную какому-нибудь другому игроку
О: Как вариант через RPC вызов (посыл)
Пример:
Используется csharp
float someVal;
void Foo()
{
networkView.RPC("SyncVal", RPCMode. Others, someVal);
}
[RPC]
void SyncVal(float val)
{
someVal = val;
}
Скрипт должен быть у каждого, кто должен получить значение переменной.
Подробнее
здесь