Пятница, 15 Ноября 2024, 20:38

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос-[ответ] по Unity
QWER56Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1
старожил
Сейчас нет на сайте
Вопрос-[Ответ] по Unity3d

  • База скриптов Unity3d
  • Курс Уроков по Unity 3D от Alcatraz

    ConsMark - поисковик по интернет магазинам.

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • PoqXertДата: Понедельник, 07 Апреля 2014, 02:10 | Сообщение # 5801
    постоянный участник
    Сейчас нет на сайте
    Цитата Adom ()
    Вот только одно но камеры спутались т.е камера сервера это камера клиента и наоборот. И еще Mouselook у клиента и сервера одновременно вращается. В MouseLook указывал IsMine. Вот только не помогает как решить ?

    В префабе игрока отключи камеру и MouseLook, и включай их только после создания игрока.


    Расширения для Unity3D
    Блог программиста - PoqXert.ru
    AdomДата: Понедельник, 07 Апреля 2014, 12:39 | Сообщение # 5802
    Печенька!
    Сейчас нет на сайте
    не-а не в этом проблема а в этом..
    Код
    void Shoot(){  
    Transform BulletInstance = (Transform) Instantiate(bullet, GameObject.Find("BulletSpawnPoint").transform.position, Quaternion.identity); //Генерится префаб патрона в координатах объекта "BulletSpawnPoint"  
    BulletInstance.rigidbody.AddForce(transform.forward * BulletForce); //Сгенерированый патрон отправляется вперед со скоростью "BulletForce"  
    CurAmmoCount = CurAmmoCount - 1; //-1 патрон  
    audio.PlayOneShot(FireSound); //проигрываем звук выстрела //вспышка от выстрела видна  
    MuzzleFlashLifetime = 0.1f; //установка времени жизни вспышки  
    }

    Добавлено (07.04.2014, 12:39)
    ---------------------------------------------
    Пришлось пожертвовать (

    PoqXertДата: Понедельник, 07 Апреля 2014, 12:47 | Сообщение # 5803
    постоянный участник
    Сейчас нет на сайте
    Delete

    Расширения для Unity3D
    Блог программиста - PoqXert.ru


    Сообщение отредактировал PoqXert - Понедельник, 07 Апреля 2014, 12:49
    AdomДата: Вторник, 08 Апреля 2014, 17:20 | Сообщение # 5804
    Печенька!
    Сейчас нет на сайте
    ?

    Добавлено (08.04.2014, 17:20)
    ---------------------------------------------
    Наверно надоел с вопросами... В общем сделал тест сцену мультиплеера... Ну вот когда я создаю сервер начинаю играть а другой человек не может подключиться почему ?

    AzgardsДата: Вторник, 08 Апреля 2014, 23:06 | Сообщение # 5805
    был не раз
    Сейчас нет на сайте
    Всем привет!

    Есть два класса на разных обектах и проблема.

    -------------
    Класс 1
    -------------
    Класс плеера который отвечает за счет очков и вывод переменной на экран
    using UnityEngine;
    using System.Collections;

    public class Score : MonoBehaviour
    {
    public int ScoreInt =0;

    void OnGUI()
    {
    GUI.TextArea (new Rect (10,140,150,25), "Убито:" + ScoreInt);
    }
    }

    -----------
    Класс 2
    -----------
    Класс врага

    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;

    public class Status : MonoBehaviour{

    public int hp = 100;

    public override void ApplyScore (int Score) {


    if(hp<=0){
    Здесь мне нужно осуществить изменение переменной "ScoreInt" из первого Класса, а именно +1

    }

    }
    Помогите разобраться, ничего не могу писать без этой возможности.
    EchoITДата: Вторник, 08 Апреля 2014, 23:20 | Сообщение # 5806
    старожил
    Сейчас нет на сайте
    Цитата
    Помогите разобраться, ничего не могу писать без этой возможности.

    Можно так:
    Код
    GO.GetComponent<Score>().ScoreInt++;

    GO - GameObject, на котором висит скрипт Score. Если объект тот же, на котором и другой скрипт висит, то "Go." писать не надо (на будущее).
    Чтобы получить нужный GO, можно написать.
    Код
    GO=GameObject.Find("Имя_объекта");


    P.S.: OnGUI - богомерзие.


    Долгожданный анонсик: State of War

    Сообщение отредактировал EchoIT - Вторник, 08 Апреля 2014, 23:21
    PoqXertДата: Среда, 09 Апреля 2014, 03:11 | Сообщение # 5807
    постоянный участник
    Сейчас нет на сайте
    Цитата Adom ()
    Ну вот когда я создаю сервер начинаю играть а другой человек не может подключиться почему ?

    Сколько лет страусу?
    Примерно так и звучит твой вопрос, т.к. не известно как ты создаёшь, как человек подключается, как ты определил, что не может подключится и много других вопросов.


    Расширения для Unity3D
    Блог программиста - PoqXert.ru
    AdomДата: Среда, 09 Апреля 2014, 12:53 | Сообщение # 5808
    Печенька!
    Сейчас нет на сайте
    Хорошо попробую объяснить лучше... В общем делал по тутору M2H_Networking оттуда использовал всего 2 скрипта 1 это коннект и создание серва а второй для спавна игрока. Когда я запускаю два клиента игры на своем компе то все выходит я могу подключаться к серву а когда дело касается других людей то они не могут ко мне подключатся как и я к ним.
    nikДата: Среда, 09 Апреля 2014, 13:01 | Сообщение # 5809
    just nik
    Сейчас нет на сайте
    Adom, используемые порты открыты?

    BridgeGamingTeam
    AdomДата: Среда, 09 Апреля 2014, 13:15 | Сообщение # 5810
    Печенька!
    Сейчас нет на сайте
    nik, Я вот тоже так-думал.... Но после того как я открыл порт и попробовал заново ничего не изменилось(
    nikДата: Среда, 09 Апреля 2014, 13:22 | Сообщение # 5811
    just nik
    Сейчас нет на сайте
    Adom, а ты проверь открыт ли он наверняка http://portscan.ru/

    BridgeGamingTeam

    Сообщение отредактировал nik - Среда, 09 Апреля 2014, 13:23
    AdomДата: Среда, 09 Апреля 2014, 14:06 | Сообщение # 5812
    Печенька!
    Сейчас нет на сайте
    Эмм
    закрыт...
    А как открыть то тогда?
    PoqXertДата: Среда, 09 Апреля 2014, 14:19 | Сообщение # 5813
    постоянный участник
    Сейчас нет на сайте
    Цитата Adom ()
    Хорошо попробую объяснить лучше...

    Страус из Австралии.
    Как ты сервер создаёшь? Что указываешь в Network.InitializeServer?
    Как подключаешься? Указываешь IP и порт?
    Скорее всего проблемы с NAT.


    Расширения для Unity3D
    Блог программиста - PoqXert.ru
    AdomДата: Среда, 09 Апреля 2014, 14:36 | Сообщение # 5814
    Печенька!
    Сейчас нет на сайте
    Код

         public string connectToIP = "127.0.0.1";  
         public int connectPort = 25001;  

         // Смешанный GUI для сервера и клиента  
         public void OnGUI()  
         {  

             if (Network.peerType == NetworkPeerType.Disconnected)  
             {  
                 //Сейчас мы отключены и не являемся клиентом или хостом  
                 GUILayout.Label("Connection status: Disconnected");  

                 connectToIP = GUILayout.TextField(connectToIP, GUILayout.MinWidth(100));  
                 connectPort = int.Parse(GUILayout.TextField(connectPort.ToString()));  

                 GUILayout.BeginVertical();  
                 if (GUILayout.Button("Connect as client"))  
                 {  
                     // Подсоединяемся к "connectToIP" и "connectPort" как клиент  
                     // В данном случае игнорируем NAT  
                     Network.useNat = false;  
                     Network.Connect(connectToIP, connectPort);  
                 }  

                 if (GUILayout.Button("Start Server"))  
                 {  
                     // Создаем север с 32 клиентами используя порт "connectPort"   
                     // Так же игнорируем NAT  
                     Network.useNat = false;  
                     Network.InitializeServer(32, connectPort);  
                 }  
                 GUILayout.EndVertical();  

             }  
             else  
             {  
                 //Мы имеем подключение(я)!  

                 if (Network.peerType == NetworkPeerType.Connecting)  
                 {  
                     // Статус - пдключение  
                     GUILayout.Label("Connection status: Connecting");  

                 }  
                 else if (Network.peerType == NetworkPeerType.Client)  
                 {  
                     // Статус - клиент  
                     GUILayout.Label("Connection status: Client!");  
                     GUILayout.Label("Ping to server: " + Network.GetAveragePing(Network.connections[0]));  

                 }  
                 else if (Network.peerType == NetworkPeerType.Server)  
                 {  
                     // Статус - сервер  
                     GUILayout.Label("Connection status: Server!");  
                     GUILayout.Label("Connections: " + Network.connections.Length);  
                     if (Network.connections.Length >= 1)  
                     {  
                         GUILayout.Label("Ping to first player: " + Network.GetAveragePing(Network.connections[0]));  
                     }  
                 }  

                 if (GUILayout.Button("Disconnect"))  
                 {  
                     Network.Disconnect(200);  
                 }  
             }  

         }
    PoqXertДата: Среда, 09 Апреля 2014, 14:49 | Сообщение # 5815
    постоянный участник
    Сейчас нет на сайте
    Цитата Adom ()
    // Так же игнорируем NAT
    Network.useNat = false;

    О чём я и говорил.
    Вместо этого напиши:
    Код
    Network.useNat = !Network.HavePublicAddress();


    Расширения для Unity3D
    Блог программиста - PoqXert.ru
    AdomДата: Среда, 09 Апреля 2014, 14:53 | Сообщение # 5816
    Печенька!
    Сейчас нет на сайте
    Ладно... Как исправлю и проверю скажу. Если все пучком будет то одарю тебя + )
    ЛевшаДата: Среда, 09 Апреля 2014, 16:21 | Сообщение # 5817
    почти ветеран
    Сейчас нет на сайте
    Цитата
    Когда я запускаю два клиента игры на своем компе то все выходит я могу подключаться к серву а когда дело касается других людей то они не могут ко мне подключатся как и я к ним

    Нат здесь не поможет.
    Другие смогут к тебе подключатся, только если у тебя *белый IP (публичный).
    По умолчанию, обычно провайдер не дает юзерам публичные адреса.


    X.cor.R (Prologue)

    Сообщение отредактировал Левша - Среда, 09 Апреля 2014, 16:23
    AdomДата: Среда, 09 Апреля 2014, 16:23 | Сообщение # 5818
    Печенька!
    Сейчас нет на сайте
    А как сделать публичным ? И опять ничего не вышло...
    ЛевшаДата: Среда, 09 Апреля 2014, 16:25 | Сообщение # 5819
    почти ветеран
    Сейчас нет на сайте
    Обратится к провайдеру и попросить, в некоторых случаях это стоит дополнительной абонентской оплаты.

    X.cor.R (Prologue)
    AdomДата: Среда, 09 Апреля 2014, 16:26 | Сообщение # 5820
    Печенька!
    Сейчас нет на сайте
    Блин... А ведь раньше получалось(

    Добавлено (09.04.2014, 16:26)
    ---------------------------------------------
    И почему тогда я к друг подключиться не могу... И может ли порт влиять на это ? (Просто нужные порты у меня закрыты)

    Поиск:

    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг