2016-08-17 5 views
1

Я пытался создать игру типа ракетной лиги с единицей 5.4 и в C#.Как подсчитать счет на всех игроках из объекта без игрока

У меня есть все с игроками, работающими и игровое поле. Игроки создаются сетевым игроком, и мяч генерируется игроком мяча, как, например, враг в учебниках. У меня есть два мяча, с которыми мяч может столкнуться, и это сбрасывает положение мяча. Но как я могу сказать игрокам, что была цель? Я искал везде и не могу найти хороший пример того, как передавать информацию игрокам с мяча. У меня есть текстовый пользовательский интерфейс, который отображается на всех камерах игроков, и он использует 2 вариатора, которые подсчитывают счет, поэтому я хочу как-то увеличить эти переменные через мяч, когда он сталкивается с целью.

RPC вызывает только работу между игровыми объектами, насколько я понимаю, и syncvars, похоже, не работают, если я пытаюсь их использовать между мячом и игроками, у кого есть какие-либо подсказки или я могу сказать, что мне не хватает?

EDIT: Для людей с той же проблемой. Я решил это, создав объект scoreManager и давая ему оценки как syncvars, после чего я получил компонент scoremanager и его скрипт и увеличил счет на балу, а затем получил его для игроков, а также получил оценку.

ответ

1

Для людей с той же проблемой. Я решил это, создав объект scoreManager и давая ему оценки как syncvars, после чего я получил компонент scoremanager и его скрипт и увеличил счет на балу, а затем получил его для игроков, а также получил оценку.

1

Предполагая, что вы используете UNet. Это из учебника с синхронизацией здоровья:

[SyncVar(hook = "OnChangeHealth")] 
    public int currentHealth = maxHealth; 

    void OnChangeHealth(int cH) 
    { 
     healthBar.value = (float)cH/maxHealth; 
    } 

Где healthBar слайдер.

Здесь у вас есть объяснение о [ClientRPC] и [Command] http://docs.unity3d.com/Manual/UNetActions.html

+0

Я пробовал это, но он никогда не вносил никаких изменений в игроков, мне придется смотреть на него снова, я думаю, но, как я понял, он работал с тех пор, как противник и игроки использовали один и тот же сценарий работоспособности, в этом случае мяч и игроки не имеют одного и того же сценария – Morti

+0

В моей тестовой игре (на основе этого урока) только у игроков есть сценарии работоспособности. Даже тогда я думаю, что ваше клиентское приложение имеет один и тот же пользовательский интерфейс и скрипт, поэтому он такой же. Наследуете ли вы свой скрипт от 'NetworkBehaviour'? – Krajca

+0

Да, я тоже пытался дать мяч localclientauthority – Morti