Изменение состояния перечисления в сценарии 1 путем изменения раскрывающегося значения в сценарии 2. «Вам не хватает ссылки на сборку?» - PullRequest
0 голосов
/ 28 апреля 2018

Я получаю сообщение об ошибке: «Вам не хватает ссылки на сборку?»

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

public class DropdownControllers : MonoBehaviour {

//Dropdown objects in hierarch, these variables are checked in the switch 
cases in update function
public Dropdown mapType, locations;

// Handle to GoogleAPI script which has the google maps code with MapType 
and Locations enums.
public GoogleAPI _mapSelected, _locationSelected;

// Use this for initialization
void Start ()
{
    //Calls populateDropDown function which populates the dropdown
    PopulateDropDowns();



    //Gets enums from GoogleAPI script
    _locationSelected.GetComponent<GoogleAPI>();
    _mapSelected.GetComponent<GoogleAPI>();
}

//Populates dropdowns with options
public void PopulateDropDowns()
{
    //Changes the caption text
    locations.GetComponent<Dropdown>().captionText.text = "Location";
    mapType.GetComponent<Dropdown>().captionText.text = "Map type";

    List<string> locationNames = new List<string>
    {
        "Pentraeth Forest", //0
        "Newborough Forest", //1
        "Other Forest" //2
    };

    //take the list of strings and add them to locations dropdown
    locations.GetComponent<Dropdown>().AddOptions(locationNames);

    //Same as above but for Maptype.
    List<string> mapTypeNames = new List<string>
    {
        "Roadmap", //0
        "Satellite", //1
        "Hybrid", //2
        "Terrain" //3
    };

    mapType.GetComponent<Dropdown>().AddOptions(mapTypeNames);
}


// Update is called once per frame
void Update ()
{

    //Switch case to check the value in dropdown. 
    switch (locations.value)
    {
        case 0:
            Debug.Log("Pentraeth");

            //if value of dropdown is 0, change the state of locations enum 
           within the Google API to Pentraeth. 
            try {
                _locationSelected.locationSelected = 
                GoogleAPI.Locations.Pentraeth;
                Debug.Log("Enum changed to Pentraeth");                }
            catch
            {
                Debug.Log(" Error, Enum cannot be changed to Pentraeth");
            }
            break;
        case 1:
            Debug.Log("Newbough");
            try
            {
                _locationSelected.locationSelected = 
                GoogleAPI.Locations.Newborough;
                Debug.Log("Enum changed to Newborough");
            }
            catch
            {
                Debug.Log(" Error, Enum cannot be changed to Newborough");
            }
            break;

        case 2:
            Debug.Log("Another");
            try
            {
                _locationSelected.locationSelected = 
                GoogleAPI.Locations.Another;
                Debug.Log("Enum changed to Another");
            }
            catch
            {
                Debug.Log(" Error, Enum cannot be changed to Another");
            }
            break;


    }
}


}

У меня есть объект dropdowncontroller с раскрывающимся сценарием внутри, а затем я перетащил два раскрывающихся объекта в сценарий.

Сценарий GoogleAPi с перечислениями находится в объекте rawimage, который является картой. Нет ссылки на выпадающие списки в скрипте GoogleAPI. Только перечисления. Должно ли быть?

"Ошибка ссылки на отсутствующую сборку для 3" _locationSelected.locationSelected = GoogleAPI.Locations.Pentraeth; " "_locationSelected.locationSelected = GoogleAPI.Locations.Newborough;" "_locationSelected.locationSelected = GoogleAPI.Locations.Another;"

Идея состоит в том, чтобы иметь 2 переключателя. 1, чтобы проверить значение Locations dropdown, затем измените состояние перечисления Locations с переменной locationSelected, затем измените координаты lat и lon, а затем сгенерируйте новую карту.

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

Я поставил переключатель в try, catch, чтобы я мог получить debug.logs, это правильно?

Думаю, я был достаточно ясен!

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

Исправлено. Думаю, это ошибка, потому что Unity и Visual Studio просто нужно было перезагрузить. Теперь ошибка исчезла.

Так что, если кто-нибудь получит сообщение «Ошибка CS1061: отсутствует ссылка на сборку?» И все выглядит хорошо. Просто перезапустите. Работал для меня, я видел другой поток, в котором он работал и для них.

0 голосов
/ 28 апреля 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...