Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity

Unity Мультиплатформенный инструмент для разработки игр

Ответ
 
Опции темы
Старый 29.04.2013, 21:28   #1066
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Такой еще непонятный момент
в OnGUI выполняю вывод инфы о комнате
GUI.Label(connectStateRectconnectState);

    if (
PhotonNetwork.connectionStateDetailed == PeerState.Joined)
        {
        
GUILayout.Label(PhotonNetwork.room.name);
        
GUILayout.Label("Count of rooms: "+PhotonNetwork.countOfRooms);
        
GUILayout.Label("Players inside room: "+PhotonNetwork.countOfPlayersOnMaster);
        
GUILayout.Label("All players: "+PhotonNetwork.countOfPlayers);
...
...
...
...
        } 


А как видно по скрину - на мастере выполняется условие if (PhotonNetwork.connectionStateDetailed == PeerState.Joined)
А на втором клиенте не выполняется.

Хотя в самом верху отображено состояние у обоих Joined
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 896
Размер:	40.9 Кб
ID:	19113  
__________________
(Offline)
 
Ответить с цитированием
Старый 29.04.2013, 21:41   #1067
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Не пользовался ни разу этим, зачем это вообще?) И кстати что в логе?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 30.04.2013, 08:02   #1068
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Хм. А можно еще как-то проверить находится ли клиент в комнате?
А логи я пока не знаю где лежат, или их подключать надо?
Потому что в проекте его не нашел
__________________
(Offline)
 
Ответить с цитированием
Старый 30.04.2013, 09:14   #1069
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

У меня не отбрабатывают собития фотона.
Пробую
void OnJoined()
void OnStatusChanged()
Реакции ноль!

подключил using Photon; - не помогло

Подскажите что надо подключить чтобы события отрабатывали

Как ты с ним вообще работаешь Пакс? Из документации нашел только пдф, в котором хрен что найдешь. На unity3d.ru по фотону вообще мёртвый раздел.
Как ты решаешь возникающие вопросы?
__________________
(Offline)
 
Ответить с цитированием
Старый 30.04.2013, 11:06   #1070
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Проверка нахождения в комнате:
PhotonNetwork.room != null 
По поводу сообщений... откуда ты такие события взял?

есть OnJoinedRoom, OnJoinedLobby и т.д.

/// <summary>
/// This enum makes up the set of MonoMessages sent by Photon Unity Networking.
/// Implement any of these constant names as method and it will be called
/// in the respective situation.
/// </summary>
/// <example>
/// Implement: 
/// public void OnLeftRoom() { //some work }
/// </example>
/// \ingroup publicApi
public enum PhotonNetworkingMessage
{
    
/// <summary>
    /// Called when the server is available and before client authenticates. Wait for the call to OnJoinedLobby (or OnConnectedToMaster) before the client does anything!
    /// Example: void OnConnectedToPhoton(){ ... }
    /// </summary>
    /// <remarks>This is not called for transitions from the masterserver to game servers, which is hidden for PUN users.</remarks>
    
OnConnectedToPhoton,

    
/// <summary>
    /// Called once the local user left a room.
    /// Example: void OnLeftRoom(){ ... }
    /// </summary>
    
OnLeftRoom,

    
/// <summary>
    /// Called -after- switching to a new MasterClient because the previous MC left the room (not when getting into a room). The last MC will already be removed at this time.
    /// Example: void OnMasterClientSwitched(PhotonPlayer newMasterClient){ ... }
    /// </summary>
    
OnMasterClientSwitched,

    
/// <summary>
    /// Called if a CreateRoom() call failed. Most likely because the room name is already in use.
    /// Example: void OnPhotonCreateRoomFailed(){ ... }
    /// </summary>
    
OnPhotonCreateRoomFailed,

    
/// <summary>
    /// Called if a JoinRoom() call failed. Most likely because the room does not exist or the room is full.
    /// Example: void OnPhotonJoinRoomFailed(){ ... }
    /// </summary>
    
OnPhotonJoinRoomFailed,

    
/// <summary>
    /// Called when CreateRoom finishes creating the room. After this, OnJoinedRoom will be called, too (no matter if creating one or joining).
    /// Example: void OnCreatedRoom(){ ... }
    /// </summary>
    /// <remarks>This implies the local client is the MasterClient.</remarks>
    
OnCreatedRoom,

    
/// <summary>
    /// Called on entering the Master Server's lobby. Client can create/join rooms but room list is not available until OnReceivedRoomListUpdate is called!
    /// Example: void OnJoinedLobby(){ ... }
    /// </summary>
    /// <remarks>
    /// Note: When PhotonNetwork.autoJoinLobby is false, OnConnectedToMaster will be called instead and the room list won't be available.
    /// While in the lobby, the roomlist is automatically updated in fixed intervals (which you can't modify).
    /// </remarks>
    
OnJoinedLobby,

    
/// <summary>
    /// Called after leaving the lobby.
    /// Example: void OnLeftLobby(){ ... }
    /// </summary>
    
OnLeftLobby,

    
/// <summary>
    /// Called after disconnecting from the Photon server. 
    /// In some cases, other events are sent before OnDisconnectedFromPhoton is called. Examples: OnConnectionFail and OnFailedToConnectToPhoton.
    /// Example: void OnDisconnectedFromPhoton(){ ... }
    /// </summary>
    
OnDisconnectedFromPhoton,

    
/// <summary>
    /// Called when something causes the connection to fail (after it was established), followed by a call to OnDisconnectedFromPhoton.
    /// If the server could not be reached in the first place, OnFailedToConnectToPhoton is called instead.
    /// The reason for the error is provided as StatusCode.
    /// Example: void OnConnectionFail(DisconnectCause cause){ ... }
    /// </summary>
    
OnConnectionFail,

    
/// <summary>
    /// Called if a connect call to the Photon server failed before the connection was established, followed by a call to OnDisconnectedFromPhoton.
    /// If the connection was established but then fails, OnConnectionFail is called.
    /// Example: void OnFailedToConnectToPhoton(DisconnectCause cause){ ... }
    /// </summary>
    
OnFailedToConnectToPhoton,

    
/// <summary>
    /// Called for any update of the room listing (no matter if "new" list or "update for known" list). Only called in the Lobby state (on master server).
    /// Example: void OnReceivedRoomListUpdate(){ ... }
    /// </summary>
    
OnReceivedRoomListUpdate,

    
/// <summary>
    /// Called when entering a room (by creating or joining it). Called on all clients (including the Master Client).
    /// Example: void OnJoinedRoom(){ ... }
    /// </summary>
    
OnJoinedRoom,

    
/// <summary>
    /// Called after a remote player connected to the room. This PhotonPlayer is already added to the playerlist at this time.
    /// Example: void OnPhotonPlayerConnected(PhotonPlayer newPlayer){ ... }
    /// </summary>
    
OnPhotonPlayerConnected,

    
/// <summary>
    /// Called after a remote player disconnected from the room. This PhotonPlayer is already removed from the playerlist at this time.
    /// Example: void OnPhotonPlayerDisconnected(PhotonPlayer otherPlayer){ ... }
    /// </summary>
    
OnPhotonPlayerDisconnected,

    
/// <summary>
    /// Called after a JoinRandom() call failed. Most likely all rooms are full or no rooms are available.
    /// Example: void OnPhotonRandomJoinFailed(){ ... }
    /// </summary>
    
OnPhotonRandomJoinFailed,

    
/// <summary>
    /// Called after the connection to the master is established and authenticated but only when PhotonNetwork.AutoJoinLobby is false.
    /// If AutoJoinLobby is false, the list of available rooms won't become available but you could join (random or by name) and create rooms anyways.
    /// Example: void OnConnectedToMaster(){ ... }
    /// </summary>
    
OnConnectedToMaster,

    
/// <summary>
    /// Called every network 'update' on MonoBehaviours that are being observed by a PhotonView.
    /// Example: void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info){ ... }
    /// </summary>
    
OnPhotonSerializeView,

    
/// <summary>
    /// Called on all scripts on a GameObject(and it's children) that have been spawned using PhotonNetwork.Instantiate
    /// Example: void OnPhotonInstantiate(PhotonMessageInfo info){ ... }
    /// </summary>
    
OnPhotonInstantiate,

    
/// <summary>
    /// Because the concurrent user limit was (temporarily) reached, this client is rejected by the server and disconnecting.
    /// </summary>
    /// <remarks>
    /// When this happens, the user might try again later. You can't create or join rooms in OnPhotonMaxCcuReached(), cause the client will be disconnecting.
    /// You can raise the CCU limits with a new license (when you host yourself) or extended subscription (when using the Photon Cloud).
    /// The Photon Cloud will mail you when the CCU limit was reached. This is also visible in the Dashboard (webpage).
    /// Example: void OnPhotonMaxCccuReached(){ ... }
    /// </remarks>
    
OnPhotonMaxCccuReached,
    
    
/// <summary>
    /// Called when inside a room when its custom properties have changed. This is ALSO called for room property changes by the local players.
    /// </summary>
    /// <remarks>
    /// Example: void OnPhotonCustomRoomPropertiesChanged(){ ... }
    /// </remarks>
    
OnPhotonCustomRoomPropertiesChanged,
    
    
/// <summary>
    /// Called when inside a room when a players custom properties change.
    /// </summary>
    /// <remarks>
    /// Example: void OnPhotonPlayerPropertiesChanged(PhotonPlayer player){ ... }
    /// </remarks>
    
OnPhotonPlayerPropertiesChanged



Работаю нормально, в pdf лазил по началу, сейчас исходники PUN смотрю когда что надо.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (30.04.2013)
Старый 28.05.2013, 04:14   #1071
radiobutton
Бывалый
 
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений
(для 546 пользователей)
Ответ: Фак по Юнити.

насколько я понял.
В юнити все вертится вокруг класса GameObject ?
Есть ли еще какие то такие очень важные классы ? =)
Возможно немного странный вопрос.


Посмотрел, в Юнити есть собственный класс Object. мм... what? xD


зы: не прошло и года, я решил опять изучить юнити +)
(Offline)
 
Ответить с цитированием
Старый 28.05.2013, 09:18   #1072
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Все объекты (ресурсы и объекты сцен) в Unity унаследованы от класса UnityEngine.Object

Вместе с GameObject неразрывно идет компонент Transform, который отвечает за трансформации объекта и за иерархию родитель/потомок. Еще очень важный класс MonoBehaviour - это базовый класс для всех пользовательских компонентов, которые можно вешать на GameObject.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
radiobutton (28.05.2013), St_AnGer (28.05.2013)
Старый 28.05.2013, 19:46   #1073
radiobutton
Бывалый
 
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений
(для 546 пользователей)
Ответ: Фак по Юнити.

[WrapperlessIcall ]
[MethodImpl]

А что делают эти атрибуты?
(Offline)
 
Ответить с цитированием
Старый 28.05.2013, 23:05   #1074
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Эти атрибуты указывают где реализация объектов/методов. В Unity эти атрибуты встречаются там, где имплементация выполнена не на C#, а на С++.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
radiobutton (29.05.2013)
Старый 09.06.2013, 07:53   #1075
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Я тобой поражаюсь! Не видел вопроса на который бы ты не ответил..
Дай мозг погонять )

Я для себя сделал вывод, что я рано пытаюсь сделать нормальную игрульку.
И решил попробовать написать мелочёвку для Play Market'a.

Кто-нибудь писал что-нибудь под андроид? Много ли подводных камней?
Пока упёрся только в 25 баксов для регистрации под разрабом в гугле - пока денег нету, на вахте.
Часто ли надо тестить на самом андроиде? У меня его просто нету, но у знакомых могу брать иногда..
Сложно ли программировать тачпад?
И часто ли бывают косяки с совместимостью?
__________________
(Offline)
 
Ответить с цитированием
Старый 09.06.2013, 12:33   #1076
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Тестировать надо только на девайсе, эмулятор это хрень, а в редакторе тач эмулировать мышью придется. Хотя мышь эмулируется первым тачем на самом деле. Т.е. если использовать левую кнопку мыши то можно запрогать игру без мультитача.

Из подводных камней - зоопарк разрешений экранов. Так что хотя бы в редакторе надо прогонять на всех разрешениях. По совместимости с Unity меньше проблем, чем писать непосредственно игру самому на Java или NDK. Так что тут можно не особо париться. Единственное Unity 4 поддерживает только arm7 и использовать лучше "кросплатформенные" форматы текстур типа ETC или не сжатые (RGB или ARGB ). Чем меньше альфы, тем меньше тормозит )

Так то из опыта всего одна игра - 21 на раздевание)
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
burovalex (09.06.2013), Gector (29.06.2013)
Старый 09.06.2013, 15:52   #1077
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Спасибо! Очень полезно. Значит надо девайс и как я понял Android Remote?
Ну с разрешением я на ПК подгонял и под 4:3 и 16:9. Складывал разрешения, делил на 2 и эту переменную брал за основу ,например, длины и высоты кнопки. Нормальный вариант?
Еще интересно, приложения изначально ориентированы на высоту или ширину?
Если мне надо ориентацию на ширину, надо боком всё ГУИ поворачивать?
__________________
(Offline)
 
Ответить с цитированием
Старый 09.06.2013, 18:12   #1078
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Вариант норм. Ориентацию можно задать в настройках билда заранее. Поворачивать ничего не надо.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 10.06.2013, 15:38   #1079
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Начал разбираться с созданием профиля и хотел создавать файл на каждого профиля. Но подумал, Юнити может хранить данные, например, System.Serializable, он их хранит вне зависимости от состояния приложения. Стоит ли таким же методом хранить данные профилей?

Начал тестить и упёрся

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

public class Profile : MonoBehaviour {

[Serializable]
public class _Profile
{
public string name;
}
public static _Profile[] AllProfiles;
public static _Profile CurrentProfile;



void Update ()
{
AllProfiles = new _Profile[2];

}
}

В эдиторе забиваю данные, в одну ячейку, после Update появляется две ячейки но уже пустые. Я понимаю что происходит это из-за new. Но как подругому не знаю..

И после отключения приложения данные удаляются, можно ли их както сохранить?

И еще вопрос появился. При выделении TextField на андроиде автоматически появляется клава?
__________________

Последний раз редактировалось burovalex, 10.06.2013 в 17:11.
(Offline)
 
Ответить с цитированием
Старый 11.06.2013, 12:32   #1080
cahekp
Разработчик
 
Аватар для cahekp
 
Регистрация: 14.12.2008
Адрес: Томск
Сообщений: 530
Написано 270 полезных сообщений
(для 883 пользователей)
Ответ: Фак по Юнити.

to burovalex:
Эм, хм... Проблема.
1) System.Serializable не хранит данные вне зависимости от состояния приложения. Он позволяет выводить поля класса в окне Инспектора.
2) AllProfiles = new _Profile[2]; - это, в переводе на русский: "Создай две пустых ячейки типа _Profile и засунь их в AllProfiles". То есть, в методе Update ты просто постоянно перезаписываешь старый массив новым, но пустым.
3) Для записи используй PlayerPrefs.SetInt, PlayerPrefs.SetFloat, PlayerPrefs.SetString и т.д. Для чтения - GetInt, GetFloat и т.д. Это самый надежный способ записать данные кроссплатформенно, вне зависимости от операционной системы.
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (13.06.2013)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 04:08.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com