Я получаю сообщение об ошибке: «Вам не хватает ссылки на сборку?»
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, это правильно?
Думаю, я был достаточно ясен!