Проблема с отображением Canvas PhotonCloud

Проблема с отображением Canvas PhotonCloud

Сообщение юnity 03 мар 2017, 11:22

Когда с плеера убираю скрипт 'Player', приложение работает. А когда обратно вешаю, вот такое:Изображение
Это хост.
В билде работает.
Вот сотбственно скрипт:
Синтаксис:
Используется csharp
using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class Player : Photon.MonoBehaviour {
        GameObject cam;
        Camera camera;
        AudioListener al;
        bool active;
        Animator anim;
        string[] animName = new string[5]{"idle", "left", "right", "rightgun", "leftgun"};
        Vector2 oldPos = Vector2.zero;
        Vector2 newPos = Vector2.zero;
        int oldNumPic = 0;
        int newNumPic = 0;
        float newPropertyy = 0.0f;
        float newPropertyx = 0.0f;
        bool isSinch = false;
        float offsetTime = 0f;
        int animNum = 0;
        float propertyX;
        float propertyY;
        void Start () {
                if (photonView.isMine) {
                        gameObject.name = "Player";
                        cam = transform.Find("Cam").gameObject;
                        camera = cam.GetComponent<Camera>();
                        al = cam.GetComponent<AudioListener>();
                        active = true;
                        transform.position = new Vector2(Vector2.zero.x + 100.0f, Vector2.zero.y);
                }else{
                        gameObject.name = "OtherPlayer";
                        cam = transform.Find("Cam").gameObject;
                        camera = cam.GetComponent<Camera>();
                        al = cam.GetComponent<AudioListener>();
                        active = false;
                        transform.position = new Vector2(Vector2.zero.x + 300.0f, Vector2.zero.y);
                }
                camera.enabled = active;
                al.enabled = active;
                cam.gameObject.SetActive(active);
                anim = transform.Find("Image").GetComponent<Animator>();
        }
        void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info){
                int numPic = animNum;
                stream.Serialize (ref numPic);
                if (stream.isReading) {
                        oldNumPic = animNum;
                        newNumPic = numPic;
                        offsetTime = 0;
                        isSinch = true;
                }
                float propertyy = propertyY;
                stream.Serialize (ref propertyy);
                if (stream.isReading) {
                        newPropertyy = propertyy;
                        isSinch = true;
                }
        }
        void Update(){
        int i = 0;
        while (i < animName.Length) {
                if (photonView.isMine) {
                        propertyX = Input.mousePosition.x/Screen.currentResolution.width;
                        propertyY = Input.mousePosition.y/Screen.currentResolution.height;
                        if (Input.GetKey (KeyCode.A)) {
                                animNum = 1;
                        } else if (Input.GetKey (KeyCode.D)) {
                                animNum = 2;
                        } else {
                                if(propertyX > 0.5f){
                                        animNum = 3;
                                }else{
                                        animNum = 4;
                                }
                        }
                        if(animNum == 3){
                                anim.runtimeAnimatorController = Resources.Load<RuntimeAnimatorController> (animName[animNum]);
                                anim.SetFloat("MouseProp", propertyY);
                        }else if(animNum == 4){
                                anim.runtimeAnimatorController = Resources.Load<RuntimeAnimatorController> (animName[animNum]);
                                anim.SetFloat("MouseProp", propertyY);
                        }else{
                                anim.runtimeAnimatorController = Resources.Load<RuntimeAnimatorController> (animName[animNum]);
                        }
                } else if (isSinch) {
                        if(newNumPic == 3){//синхронизирую переменные animNum для смены поворота персонажа
                                anim.runtimeAnimatorController = Resources.Load<RuntimeAnimatorController> (animName[newNumPic]);
                                anim.SetFloat("MouseProp", newPropertyy);//и propertyY дляя направления оружия
                        }else if(newNumPic == 4){
                                anim.runtimeAnimatorController = Resources.Load<RuntimeAnimatorController> (animName[newNumPic]);
                                anim.SetFloat("MouseProp", newPropertyy);
                        }else{//это когда бегает вправо-влево
                                anim.runtimeAnimatorController = Resources.Load<RuntimeAnimatorController> (animName[newNumPic]);
                        }
                }
                i++;
                }
        }
}
Последний раз редактировалось юnity 03 мар 2017, 14:42, всего редактировалось 1 раз.
Give exact coordinates of the decision of the problems
Аватара пользователя
юnity
UNITрон
 
Сообщения: 290
Зарегистрирован: 21 июл 2015, 18:30

Re: Кто-нибудь сталкивалсяя с подобной праблемой?

Сообщение Woolf 03 мар 2017, 13:39

смените название темы на адекватное
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Проблема с отображением Canvas PhotonCloud

Сообщение юnity 03 мар 2017, 16:18

Маленько переделал код:
Синтаксис:
Используется csharp
using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class Player : Photon.MonoBehaviour {
        GameObject cam;
        Camera camera;
        AudioListener al;
        bool active;
        Animator anim;
        string[] animName = new string[5]{"idle", "left", "right", "rightgun", "leftgun"};
        Vector2 oldPos = Vector2.zero;
        Vector2 newPos = Vector2.zero;
        int oldNumPic = 0;
        int newNumPic = 0;
        float newPropertyy = 0.0f;
        float newPropertyx = 0.0f;
        bool isSinch = false;
        float offsetTime = 0f;
        int animNum = 0;
        float propertyX;
        float propertyY;
        Canvas canvas;
        void Start () {
                canvas = FindObjectOfType<Canvas>();
                gameObject.transform.SetParent (canvas.transform);
                if (photonView.isMine) {
                        gameObject.name = "Player";
                        cam = transform.FindChild("Cam").gameObject;
                        camera = cam.GetComponent<Camera>();
                        al = cam.GetComponent<AudioListener>();
                        active = true;
                        anim = gameObject.GetComponent<Animator>();
                        transform.position = new Vector2(Vector2.zero.x + 100.0f, Vector2.zero.y);
                }else{
                        gameObject.name = "OtherPlayer";
                        cam = transform.FindChild("Cam").gameObject;
                        camera = cam.GetComponent<Camera>();
                        al = cam.GetComponent<AudioListener>();
                        active = false;
                        anim = gameObject.GetComponent<Animator>();
                        transform.position = new Vector2(Vector2.zero.x + 300.0f, Vector2.zero.y);
                }
                camera.enabled = active;
                al.enabled = active;
                cam.gameObject.SetActive(active);
        }
        void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info){
                int numPic = animNum;
                stream.Serialize (ref numPic);
                if (stream.isReading) {
                        oldNumPic = animNum;
                        newNumPic = numPic;
                        offsetTime = 0;
                        isSinch = true;
                }
                float propertyy = propertyY;
                stream.Serialize (ref propertyy);
                if (stream.isReading) {
                        newPropertyy = propertyy;
                        isSinch = true;
                }
        }
        void Update(){
                int i = 0;
                while (i < animName.Length) {
                        if (photonView.isMine) {
                                propertyX = camera.ScreenToViewportPoint(Input.mousePosition).x;
                                propertyY = camera.ScreenToViewportPoint(Input.mousePosition).y;
                                if (Input.GetKey (KeyCode.A)) {
                                        animNum = 1;
                                } else if (Input.GetKey (KeyCode.D)) {
                                        animNum = 2;
                                } else {
                                        if(propertyX > 0.5f){
                                                animNum = 3;
                                        }else{
                                                animNum = 4;
                                        }
                                }
                                if(animNum == 3){
                                        anim.runtimeAnimatorController = (RuntimeAnimatorController)Resources.Load<RuntimeAnimatorController> (animName[animNum]);
                                        anim.SetFloat("MouseProp", propertyY);
                                }else if(animNum == 4){
                                        anim.runtimeAnimatorController = (RuntimeAnimatorController)Resources.Load<RuntimeAnimatorController> (animName[animNum]);
                                        anim.SetFloat("MouseProp", propertyY);
                                }else{
//                                      transform.GetComponent<Image> ().sprite = Resources.Load<Sprite> (animName[animNum]);
                                        anim.runtimeAnimatorController = (RuntimeAnimatorController)Resources.Load<RuntimeAnimatorController> (animName[animNum]);
                                }
                        } else if (isSinch) {
                                if(newNumPic == 3){//синхронизирую переменные animNum для смены поворота персонажа
                                        anim.runtimeAnimatorController = (RuntimeAnimatorController)Resources.Load<RuntimeAnimatorController> (animName[newNumPic]);
                                        anim.SetFloat("MouseProp", newPropertyy);//и propertyY дляя направления оружия
                                }else if(newNumPic == 4){
                                        anim.runtimeAnimatorController = (RuntimeAnimatorController)Resources.Load<RuntimeAnimatorController> (animName[newNumPic]);
                                        anim.SetFloat("MouseProp", newPropertyy);
                                }else{
//                                      transform.GetComponent<Image> ().sprite = Resources.Load<Sprite> (animName[newNumPic]);
                                        anim.runtimeAnimatorController = (RuntimeAnimatorController)Resources.Load<RuntimeAnimatorController> (animName[newNumPic]);
                                }
                        }
                        i++;
                }
//              if(GetComponent<Image>().sprite != null)
//              Debug.Log(GetComponent<Image>().sprite.name);
        }
}
 

Но ничего не помогло, думал что проблема может быть в том, что пытаюсь постоянно сканировать положение мышки и происходит перегрузка, попробовал менть переменные по клику но не помогло. Во дела, я так понял - фотон отключается моим хостом.
Give exact coordinates of the decision of the problems
Аватара пользователя
юnity
UNITрон
 
Сообщения: 290
Зарегистрирован: 21 июл 2015, 18:30

Re: Проблема с отображением Canvas PhotonCloud

Сообщение Aleksey 06 мар 2017, 13:26

Это что? WebGl + photon cloud сборка? Открой консоль браузера чтобы посмотреть ошибки. В опере это например так. Меню - разработка - инструменты разработчика
СТОП, мне не померещилось?) веб плеер сборка?) серьезно?) все популярные браузеры отказались от веб плеера давно уже. В юнити же билд веб плеера убрали давно уже. Ты в старой версии юнити чтоли веб плеер сборку билдишь?) а зачем?)
Продукты на тему онлайна в Ассет Сторе
_https://www.assetstore.unity3d.com/en/# ... sher:21589
Аватара пользователя
Aleksey
UNIт
 
Сообщения: 56
Зарегистрирован: 17 фев 2015, 16:09

Re: Проблема с отображением Canvas PhotonCloud

Сообщение юnity 06 мар 2017, 19:11

Ну, я вообще то не в курсе, и инструмент 5.2.0f3, когда отказались? Без этого класса всё видно. А я что пропустил? Что теперь? В новых версиях юньки WebPlayer не билдится? Юнька теперь только для гаджетов? билдил дляяя vk.
Give exact coordinates of the decision of the problems
Аватара пользователя
юnity
UNITрон
 
Сообщения: 290
Зарегистрирован: 21 июл 2015, 18:30

Re: Проблема с отображением Canvas PhotonCloud

Сообщение DbIMok 06 мар 2017, 21:07

год назад отказались, с 5.4. теперь WebGL и вот вот состоится переход браузеров на его более продвинутый вариант WebAssembly
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Проблема с отображением Canvas PhotonCloud

Сообщение юnity 09 мар 2017, 13:10

Не пойму , в чём дело. В WebGL абсолютно такой же результат. Понимаю, что дело не в сервере. Но опять встаёт всё тот же вопрос. Я пользуюсь 2D, поэтому сделал игрока из Imag, "может ли проблема его отрисовки, заключаться в этом?" Спавню:
Синтаксис:
Используется csharp
player = PhotonNetwork.Instantiate("myImagePrefab", pos, ouat,0);
player.transform.SetParent(canvas.transform);
В билде для Windows всё работает на обоих клиентах, а на сервере чёрный экран. Не думяю, что на спрайты надо компанент photonView??
Может кто нибудь подскажет.
Give exact coordinates of the decision of the problems
Аватара пользователя
юnity
UNITрон
 
Сообщения: 290
Зарегистрирован: 21 июл 2015, 18:30

Re: Проблема с отображением Canvas PhotonCloud

Сообщение Aleksey 09 мар 2017, 15:49

Что там в консоли браузера показывает ? В опере - Меню - разработка - инструменты разработчика
И я не понимаю зачем тебе пытки на WebGl , вебгл не рабочая платформа. По крайней мере я не видел не одной популярной игры на вебгл. Загрузки колоссальные. пинг 150-200
Продукты на тему онлайна в Ассет Сторе
_https://www.assetstore.unity3d.com/en/# ... sher:21589
Аватара пользователя
Aleksey
UNIт
 
Сообщения: 56
Зарегистрирован: 17 фев 2015, 16:09

Re: Проблема с отображением Canvas PhotonCloud

Сообщение юnity 09 мар 2017, 18:12

Мне разницы нет какая платформа, это для теста. На одном компе тестировать невозможно перехват происходит всего. Я ришил в интернети протестировать работу Photonовского движка. Что бы баги все исправить. Когда игра будет готова подумаю как с ней всёже поступить, попробую ещё что нибудь. Как видите упёрся в скалу, не из-за платформы. Вот где то в другом заморозка 100-500. Что вот не так, может из за того что юнька не с оффициального сайта? Почему без публикации работает. Без понятия что делать. Другой проэкт сбилденный на этой программе без проблем.
Что то тут в этих строчках кода. Может залить надо библиотеку какую нибудь в проэкт, там раньше 2 файла лежало html и unity3d Photon работал, асейчас рога. Я до этого не пробовал UI использовать. Может что-то делаю сейчас неправильно. Но придерживаюсь правил, повешал PhotonView на префаб, к компанентам же не добавишь, и префаб видно.
Вот тут получилось так, что этого игрока видно становится, когда он становится дочерним объектом в канвасе, который по суте объект сцены. Но на префабе есть PhotonView. Не делать же несколько Canvasов. Это наверное неправильно или нет, нигде такой информации не нашёл.

Ооо. Вроде последний фикс прошёл успешно. Да, мои опасения по поводу UI были несомненно верны. Отказался от него. Сделал спрайт и заработало.
PS:Спасибо что подсказали что WebPlayer не раотает, работает только на WbGL.
Give exact coordinates of the decision of the problems
Аватара пользователя
юnity
UNITрон
 
Сообщения: 290
Зарегистрирован: 21 июл 2015, 18:30


Вернуться в Photon

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1