Я новичок в Unity и у меня проблема в проекте, точнее, проблема в скрипте контрольной точки и такой результат
ошибка:
FormatException: Input string was not in a correct format.
System.Number.StringToNumber (System.String str, System.Globalization.NumberStyles options, System.Number+NumberBuffer& number, System.Globalization.NumberFormatInfo info, System.Boolean parseDecimal) (at \:0)
System.Number.ParseInt32 (System.String s, System.Globalization.NumberStyles style, System.Globalization.NumberFormatInfo info) (at \:0)
System.Int32.Parse (System.String s) (at \:0)
Checkpoint.Start () (at Assets/Script/Checkpoint.cs:38)
Надеюсь, вы, ребята, поможете мне решить эту проблему, и это мой сценарий:
using System.Collections;
using System.Collections.Generic;
using System;
using UnityEngine;
using UnityEngine.UI;
public class Checkpoint : MonoBehaviour
{
[HideInInspector]
public int lap = 0;
[HideInInspector]
public int checkPoint = -1;
int checkPointCount;
int nextCheckpoint = 0;
Dictionary visited = new Dictionary();
public Text lapText;
[HideInInspector]
public bool missed = false;
public GameObject PrevCheckpoint;
//Start is called before the first frame update
void Start()
{
GameObject[] checkpoints = GameObject.FindGameObjectsWithTag("Checkpoint");
checkPointCount = checkpoints.Length;
foreach (GameObject checpoint in checkpoints)
{
if (checpoint.name == "0")
{
PrevCheckpoint = checpoint;
break;
}
}
foreach (GameObject cp in checkpoints)
{
visited.Add(Int32.Parse(cp.name), false);
}
}
// Update is called once per frame (eror lap gak mau nambah)
void OnTriggerEnter(Collider col)
{
Debug.Log("colision");
if (col.gameObject.tag == "Checkpoint")
{
int checkpointCurrent = int.Parse(col.gameObject.name);
if (checkpointCurrent == nextCheckpoint)
{
PrevCheckpoint = col.gameObject;
visited[checkpointCurrent] = true;
checkPoint = checkpointCurrent;
if (checkPoint == 0 && gameObject.tag == "Player")
{
lap++;
lapText.text = "Lap: " + lap;
}
nextCheckpoint++;
if (nextCheckpoint >= checkPointCount)
{
var keys = new List(visited.Keys);
foreach (int key in keys)
{
visited[key] = false;
}
nextCheckpoint = 0;
}
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/717 ... er-stringt
FormatException: входная строка имела неправильный формат. System.Number.StringToNumber(System.String str, .........) ⇐ C#
Место общения программистов C#
1767845340
Anonymous
Я новичок в Unity и у меня проблема в проекте, точнее, проблема в скрипте контрольной точки и такой результат
ошибка:
FormatException: Input string was not in a correct format.
System.Number.StringToNumber (System.String str, System.Globalization.NumberStyles options, System.Number+NumberBuffer& number, System.Globalization.NumberFormatInfo info, System.Boolean parseDecimal) (at \:0)
System.Number.ParseInt32 (System.String s, System.Globalization.NumberStyles style, System.Globalization.NumberFormatInfo info) (at \:0)
System.Int32.Parse (System.String s) (at \:0)
Checkpoint.Start () (at Assets/Script/Checkpoint.cs:38)
Надеюсь, вы, ребята, поможете мне решить эту проблему, и это мой сценарий:
using System.Collections;
using System.Collections.Generic;
using System;
using UnityEngine;
using UnityEngine.UI;
public class Checkpoint : MonoBehaviour
{
[HideInInspector]
public int lap = 0;
[HideInInspector]
public int checkPoint = -1;
int checkPointCount;
int nextCheckpoint = 0;
Dictionary visited = new Dictionary();
public Text lapText;
[HideInInspector]
public bool missed = false;
public GameObject PrevCheckpoint;
//Start is called before the first frame update
void Start()
{
GameObject[] checkpoints = GameObject.FindGameObjectsWithTag("Checkpoint");
checkPointCount = checkpoints.Length;
foreach (GameObject checpoint in checkpoints)
{
if (checpoint.name == "0")
{
PrevCheckpoint = checpoint;
break;
}
}
foreach (GameObject cp in checkpoints)
{
visited.Add(Int32.Parse(cp.name), false);
}
}
// Update is called once per frame (eror lap gak mau nambah)
void OnTriggerEnter(Collider col)
{
Debug.Log("colision");
if (col.gameObject.tag == "Checkpoint")
{
int checkpointCurrent = int.Parse(col.gameObject.name);
if (checkpointCurrent == nextCheckpoint)
{
PrevCheckpoint = col.gameObject;
visited[checkpointCurrent] = true;
checkPoint = checkpointCurrent;
if (checkPoint == 0 && gameObject.tag == "Player")
{
lap++;
lapText.text = "Lap: " + lap;
}
nextCheckpoint++;
if (nextCheckpoint >= checkPointCount)
{
var keys = new List(visited.Keys);
foreach (int key in keys)
{
visited[key] = false;
}
nextCheckpoint = 0;
}
}
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/71740588/formatexception-input-string-was-not-in-a-correct-format-system-number-stringt[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия