Я делаю функцию перетаскивания. в единстве 2d
Три варианта и один пробел
Я поставил три варианта и назвал их «option1», «option2», «option3»
** Эта пустая сцена должна соответствовать опции 3
Следующая пустая сцена должна соответствовать опции 1
Последняя пустая сцена должна соответствовать опции2 **
Вот что я хочу. Но он говорит
IndexOutOfRangeException: индекс был за пределами массива. streetlight_dragdrop.Start () (в
(я использовал этот код еще один забавный c, что «3 варианта и 3 пробела» это работало хорошо. НО это не работает в этой ситуации ...)
public GameObject[] options; //drag options objects
public GameObject[] blankoptions; //blank
Vector3[] optionsStartPos;
Vector3[] blankoptionsStartPos;
void Start()
{
optionsStartPos = new Vector3[options.Length];
blankoptionsStartPos = new Vector3[blankoptions.Length];
for (int i = 0; i < options.Length; i++)
{
optionsStartPos[i] = options[i].transform.position;
blankoptionsStartPos[i] = blankoptions[i].transform.position;
}
}
public void dragOptions(GameObject option)
{
option.transform.position = Input.mousePosition;
}
public void dropOptions(GameObject option)
{
int index = System.Array.IndexOf(options, option);
float dist = Vector3.Distance(option.transform.position, blankoptions[index].transform.position);
if (dist < 80) //correct
{
option.transform.position = blankoptions[index].transform.position;
if (gameObject.name == "option3")
{
//after 2sec, scene change func
Invoke("street_5", 2);
}
}
//incorrect
else
{
Handheld.Vibrate();
option.transform.position = optionsStartPos[index];
}
}