С Новым годом! Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 10.04.2015
Сообщений: 105

Custom Manager script

16.05.2016, 08:20. Показов 1129. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня всем.
Для очень простой сетевой игре и написал свой NetworkManager скрипт

Меню выглядит примерно так :Название: Screen Shot 2016-05-16 at 7.50.08 AM.png
Просмотров: 24

Размер: 18.3 Кб


Скрипт :
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
using UnityEngine.UI;
 
public class NetworkManager_Custom : NetworkManager {
 
    [SerializeField] Vector3 playerSpawnPos;
    [SerializeField] GameObject Helicopter;
    [SerializeField] GameObject Soldier;
 
    bool soldier = true,helicop = true;
 
    GameObject choosenCharacter; // Helicopter or Soldier
 
 
    public void HelicopterChoose()
    {
        if (helicop) {
            choosenCharacter = Helicopter;
            playerSpawnPos = new Vector3 (-112.7f, 4f, -121.4f);
            helicop = false;
            JoinGame ();
        }
    }
 
    public void SoldierChoose()
    {
        if (soldier) {
            choosenCharacter = Soldier;
            playerSpawnPos = new Vector3 (0f, 0f, 0f);
            soldier = false;
            JoinGame ();
        }
    }
        
    public void StartupHost()
    {
        SetPort();
        NetworkManager.singleton.StartHost ();
    }
 
    public void JoinGame()
    {
        SetIPAddress ();
        SetPort ();
        NetworkManager.singleton.StartClient ();
    }
        
    void SetIPAddress()
    {
        string ipAdress = GameObject.Find ("InputFieldIPAddress").transform.FindChild ("Text").GetComponent<Text> ().text;
        NetworkManager.singleton.networkAddress = ipAdress;
 
    }
 
    void SetPort()
    {
        NetworkManager.singleton.networkPort = 7777;
    }
 
    void OnLevelWasLoaded(int level)
    {
        if (level == 0) {
 
            SetupMenuSceneButton ();
        }
    }
        
    void SetupMenuSceneButton()
 
    {
        GameObject.Find ("ButtonStartHost").GetComponent<Button> ().onClick.RemoveAllListeners ();
        GameObject.Find ("ButtonStartHost").GetComponent<Button> ().onClick.AddListener (StartupHost);
 
        GameObject.Find ("ButtonHelicoppter").GetComponent<Button> ().onClick.RemoveAllListeners ();
        GameObject.Find ("ButtonHelicoppter").GetComponent<Button> ().onClick.AddListener (HelicopterChoose);
 
        GameObject.Find ("ButtonSoldier").GetComponent<Button> ().onClick.RemoveAllListeners ();
        GameObject.Find ("ButtonSoldier").GetComponent<Button> ().onClick.AddListener (SoldierChoose);
 
    }
        
    public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId) {
 
        var player = (GameObject)GameObject.Instantiate(choosenCharacter, playerSpawnPos, Quaternion.identity);
 
        NetworkServer.AddPlayerForConnection(conn, player, playerControllerId);
    }
}
При запуски и нажатии на кнопку Start Host

Выскакивает ошибка:
ArgumentException: The thing you want to instantiate is null.
UnityEngine.Object.CheckNullArgument (System.Object arg, System.String message)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.05.2016, 08:20
Ответы с готовыми решениями:

Ошибка "The associated script cannot be loaded, please fix any compile errors and assign a valid script" (C#)
Решил на юнити сделать игру. Сейчас делаю движение врага но что не выходит и в юнити пишет: А вот сам код: using...

Custom memory manager
в образовательных целях решил написать свой менеджер памяти class memory_pool { typedef unsigned char byte; struct free_space...

CSS Custom Background-image (custom header)
Добрый день, подсобите с решением. Для определенной секции прописана картинка загловка (background-image). Как в вордпрессе...

4
103 / 104 / 54
Регистрация: 23.03.2016
Сообщений: 462
16.05.2016, 09:50
VladV, в какой момент choosenCharacter принимает значение? До или после вызова OnServerAddPlayer?
0
0 / 0 / 0
Регистрация: 10.04.2015
Сообщений: 105
16.05.2016, 10:16  [ТС]
Сценарий такой:

Кто то из двух игроков первый заходит и
1.нажимает кнопку Start Host
2. Далее он выбирает один из двух префабов нажимая Либо Helicopter button Либо soldier button
3. После нажатия одной из этих кнопок (Helicopter/Soldier) ChoosenCharacter принимает значение и сразу же вызывается OnServerAddPlayer
4. Второй игрок уже кнопку Start Host не жмет так это сделал первый он только жмет одну из кнопок (Helicopter/Soldier) ChoosenCharacter принимает соотвественное значение и сразу же вызывается OnServerAddPlayer
уже для него с тем что он выбрал

Примерно так я думаю сделать , но если у вас есть лучшее предложение буду только рад
0
289 / 252 / 107
Регистрация: 26.10.2012
Сообщений: 802
16.05.2016, 11:58
Цитата Сообщение от VladV Посмотреть сообщение
C#
1
void SetPort() { NetworkManager.singleton.networkPort = 7777; }
Вангую, что NetworkManager.singleton непроинициализирован и равен null.
Вообще в консоли unity пишется строка ошибки, двойной клик - переход к ней.
0
0 / 0 / 0
Регистрация: 10.04.2015
Сообщений: 105
16.05.2016, 12:02  [ТС]
А как решить это ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.05.2016, 12:02
Помогаю со студенческими работами здесь

Custom Form\Custom Button
Кто знает как изменить внешний вид формы тоесть написать класс или .dll файл для того чтоб менять вид формы как у Windows Media Player или...

Не работает сокращение <% %> и не скрывается код,расположенный между <script></script>
Помогите,пожалуйста!У меня не работает сокращение &lt;% %&gt; и не скрывается код,расположенный между &lt;script&gt;&lt;/script&gt; Когда пишу...

Вызов удаленного файла через <script src=....></script>
на странице имеется код: &lt;div id='Output'&gt; &lt;script src='http://www.xxx.ru/xxx.asp'&gt;&lt;/script&gt; &lt;/div&gt; &lt;SCRIPT...

Вырезать из текста всё что между <script и <script>
вот такой текст лежит в переменной php = &lt;html&gt; &lt;head&gt; &lt;script type=&quot;text/javascript&quot;...

Вызов удаленного файла через <script src=....></script>
на странице имеется код: &lt;div id='Output'&gt; &lt;script src='http://www.xxx.ru/xxx.asp'&gt;&lt;/script&gt; &lt;/div&gt; &lt;SCRIPT...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru