проблемы с векторами

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Re: проблемы с векторами

Сообщение kirya_355 19 июл 2018, 20:12

и ещё , я правильно сделал скрипт
Синтаксис:
Используется csharp
void Start(){
GameObject[] allGo = FindObjectsOfType<GameObject> ();}
void OnMouseUpAsButton ()
  {
    if (ads == true)
      ShowRewardedAd ();
    else if (ads == false)
    {
    foreach (GameObject go in allGo){
    if(!go.CompareTag("banner"))
      Instantiate (banner1, new Vector2 (0, 0), Quaternion.identity);
    }
    }
    else if (Application.internetReachability == NetworkReachability.NotReachable)
    {
      foreach (GameObject go in allGo){
      if(!go.CompareTag("banner"))
      Instantiate (banner, new Vector2 (0, 0), Quaternion.identity);
      }
    }
  }

по идеи он должен проверять есть ли на сцене объекты с тегом баннер если нет то создавать баннер
kirya_355
UNIт
 
Сообщения: 106
Зарегистрирован: 09 май 2018, 21:40

Re: проблемы с векторами

Сообщение 1max1 19 июл 2018, 20:19

Вот этот кусок никогда в жизни не сработает
Синтаксис:
Используется csharp
        else if (Application.internetReachability == NetworkReachability.NotReachable)
        {
            foreach (GameObject go in allGo)
            {
                if (!go.CompareTag("banner"))
                    Instantiate(banner, new Vector2(0, 0), Quaternion.identity);
            }
        }
 

Вот так я думаю лучше будет
Синтаксис:
Используется csharp
    void OnMouseUpAsButton()
    {
        if (ads)
        {
            ShowRewardedAd();
        }
        else
        {
            bool ins = true;

            foreach (GameObject go in allGo)
            {
                if (go.CompareTag("banner"))
                    ins = false;
            }

            if (ins)
                Instantiate(banner1, new Vector2(0, 0), Quaternion.identity);
        }
    }
 
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: проблемы с векторами

Сообщение kirya_355 19 июл 2018, 20:21

1max1 писал(а):Вот этот кусок никогда в жизни не сработает
Синтаксис:
Используется csharp
        else if (Application.internetReachability == NetworkReachability.NotReachable)
        {
            foreach (GameObject go in allGo)
            {
                if (!go.CompareTag("banner"))
                    Instantiate(banner, new Vector2(0, 0), Quaternion.identity);
            }
        }
 

Вот так я думаю лучше будет
Синтаксис:
Используется csharp
    void OnMouseUpAsButton()
    {
        if (ads)
        {
            ShowRewardedAd();
        }
        else
        {
            bool ins = true;

            foreach (GameObject go in allGo)
            {
                if (go.CompareTag("banner"))
                    ins = false;
            }

            if (ins)
                Instantiate(banner1, new Vector2(0, 0), Quaternion.identity);
        }
    }
 

так у меня 2 баннер куда 2 впихнуть ,banner и banner1
kirya_355
UNIт
 
Сообщения: 106
Зарегистрирован: 09 май 2018, 21:40

Re: проблемы с векторами

Сообщение 1max1 19 июл 2018, 20:25

Хоспади...
Синтаксис:
Используется csharp
void OnMouseUpAsButton()
    {
        if (ads)
        {
            ShowRewardedAd();
        }
        else
        {
            bool ins = true;

            foreach (GameObject go in allGo)
            {
                if (go.CompareTag("banner"))
                    ins = false;
            }

            if (ins)
                Instantiate(banner1, new Vector2(0, 0), Quaternion.identity);
        }

        if (Application.internetReachability == NetworkReachability.NotReachable)
        {
            bool ins = true;

            foreach (GameObject go in allGo)
            {
                if (go.CompareTag("banner"))
                    ins = false;
            }

            if (ins)
                Instantiate(banner, new Vector2(0, 0), Quaternion.identity);
        }
    }
 
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: проблемы с векторами

Сообщение kirya_355 19 июл 2018, 22:02

1max1 писал(а):Хоспади...
Синтаксис:
Используется csharp
void OnMouseUpAsButton()
    {
        if (ads)
        {
            ShowRewardedAd();
        }
        else
        {
            bool ins = true;

            foreach (GameObject go in allGo)
            {
                if (go.CompareTag("banner"))
                    ins = false;
            }

            if (ins)
                Instantiate(banner1, new Vector2(0, 0), Quaternion.identity);
        }

        if (Application.internetReachability == NetworkReachability.NotReachable)
        {
            bool ins = true;

            foreach (GameObject go in allGo)
            {
                if (go.CompareTag("banner"))
                    ins = false;
            }

            if (ins)
                Instantiate(banner, new Vector2(0, 0), Quaternion.identity);
        }
    }
 

появилась ошибка ,вот код
Синтаксис:
Используется csharp
using UnityEngine;
using UnityEngine.Advertisements;
using UnityEngine.SceneManagement;
public class UnityAds : MonoBehaviour
{
  public GameObject banner, banner1;
  private bool ads, net;
  private GameObject[] allGo;

  void Start ()
  {

    if (Advertisement.isSupported)
    {
      ads = true;
      Advertisement.Initialize ("2578372", false);
    }
    else
      ads = false;
    GameObject[] allGo = FindObjectsOfType<GameObject> ();

  }

  void OnMouseUpAsButton ()
  {
    if (ads)
    {
      ShowRewardedAd ();
    }
    else
    {
      bool ins = true;

      foreach (GameObject go in allGo)
      {
        if (go.CompareTag ("banner"))
          ins = false;
      }

      if (ins)
        Instantiate (banner1, new Vector2 (0, 0), Quaternion.identity);
    }

    if (Application.internetReachability == NetworkReachability.NotReachable)
    {
      bool ins = true;

      foreach (GameObject go in allGo)//здесь 48 строчка
      {
        if (go.CompareTag ("banner"))
          ins = false;
      }

      if (ins)
        Instantiate (banner, new Vector2 (0, 0), Quaternion.identity);
    }
  }

  public void ShowRewardedAd ()
  {
    if (Advertisement.IsReady ("rewardedVideo"))
    {
      var options = new ShowOptions { resultCallback = HandleShowResult };
      Advertisement.Show ("rewardedVideo", options);
    }

  }

  private void HandleShowResult (ShowResult result)
  {
    switch (result)
    {
      case ShowResult.Finished:

        if (SceneManager.GetActiveScene ().name == "shop")
        {
          int i = PlayerPrefs.GetInt ("allscore");
          PlayerPrefs.SetInt ("allscore", i + 50);

        }

        break;
      case ShowResult.Skipped:

        break;
      case ShowResult.Failed:

        break;
    }
  }

  private void NetConnection ()
  {

  }
}
 

в ошибке пишет NullReferenceException: Object reference not set to an instance of an object
UnityAds.OnMouseUpAsButton () (at Assets/scripts/UnityAds.cs:48)
UnityEngine.SendMouseEvents:DoSendMouseEvents(Int32)
kirya_355
UNIт
 
Сообщения: 106
Зарегистрирован: 09 май 2018, 21:40

Re: проблемы с векторами

Сообщение seaman 19 июл 2018, 22:12

Два раза определяете allGo один раз присваиваете.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: проблемы с векторами

Сообщение kirya_355 20 июл 2018, 09:28

seaman писал(а):Два раза определяете allGo один раз присваиваете.

ты про тот в Start и вначале где private? или про что , можешь показать как исправить
kirya_355
UNIт
 
Сообщения: 106
Зарегистрирован: 09 май 2018, 21:40

Re: проблемы с векторами

Сообщение seaman 20 июл 2018, 11:05

У Вас две переменные allGo. Одна в классе, другая в методе Start
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: проблемы с векторами

Сообщение Anonymyx 20 июл 2018, 11:54

1-ая у вас глобальная переменная а 2ая локальная.
Синтаксис:
Используется csharp
 void Start ()
  {

    if (Advertisement.isSupported)
    {
      ads = true;
      Advertisement.Initialize ("2578372", false);
    }
    else
      ads = false;
    allGo = FindObjectsOfType<GameObject> (); //писать тип не нужно.

  }


PS. сообщение пропало :(
Аватара пользователя
Anonymyx
Адепт
 
Сообщения: 1973
Зарегистрирован: 05 апр 2015, 15:55

Re: проблемы с векторами

Сообщение kirya_355 21 июл 2018, 10:27

ну ту проблему я решил , теперь новая , когда баннер создается из префаба , то он создается не в канвасе , следовательно его не видно , как прописать место где он будет создавать , я хочу чтобы он в канвасе был самый последний
kirya_355
UNIт
 
Сообщения: 106
Зарегистрирован: 09 май 2018, 21:40

Re: проблемы с векторами

Сообщение 1max1 21 июл 2018, 11:36

transform.parent = canvas.transform;
transform.SetAsLastSibling();
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: проблемы с векторами

Сообщение kirya_355 21 июл 2018, 14:54

1max1 писал(а):transform.parent = canvas.transform;
transform.SetAsLastSibling();

и где это писать , после Instatiate ?
kirya_355
UNIт
 
Сообщения: 106
Зарегистрирован: 09 май 2018, 21:40

Re: проблемы с векторами

Сообщение 1max1 21 июл 2018, 15:12

на лбу себе напиши))
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: проблемы с векторами

Сообщение kirya_355 21 июл 2018, 16:53

1max1 писал(а):на лбу себе напиши))

написал ,не работает
может в старте написать?
kirya_355
UNIт
 
Сообщения: 106
Зарегистрирован: 09 май 2018, 21:40

Re: проблемы с векторами

Сообщение seaman 21 июл 2018, 17:18

1max1 замечание. Поспокойней. Я по себе знаю - "Почемучка" со временем начинает раздражать. Совет - какое то время сюда не заглядывать...
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Пред.След.

Вернуться в Почемучка

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

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