Я разрабатываю игру мультиигрок в Unity используя услуги Google Плаи Гаме Services (GPGS), каждый из игроков, который присоединяется, получает один пойдите игрока посредством GPGS он пойдите это string, который нуждался в том, чтобы обратить в целое число и Ваши элементы сложить их, чтобы получать числовую стоимость каждого пользователя и мочь реализовывать какое-то определенное действие.
Проблема не состоит в том, чтобы конвертировать string в int, уже конвертируется я не могу реализовывать никакого типа операции с ними.
Код, который у меня есть, - следующий:
//Declaración de variables
char[] caracter;
int[] valId;
//Inicialización de variables
caracter = nextParticipantId.ToCharArray();
valId = new int[]{0,0,0,0,0,0,0,0,0,0}
//Sección del código
foreach( char letter in caracter) {
Debug.Log("La letra es: " + letter);
Debug.Log("El valor de la letra es: " + Convert.ToInt32(letter));
valId[i] += Convert.ToInt32(letter);
}
Первый Debug показывает мне букву без проблемы, второй показывает мне Вашу стоимость без какой-либо проблемы также, конфликт, - когда я стараюсь складывать стоимость этих букв.
Ты должен использовать Convert.ToInt32
или Int32.Parse
, но имей найди, что ты должен хранить результат в другой переменной целого типа, чтобы мочь манипулировать этим.
Пример:
var cadena = "1234";
var numero = Convert.ToInt32(cadena);
numero += 1; // ahora es 1235
Имей в виду, что цепь продолжает быть цепью.
типов Привета
Хорошо, никогда я не использовал класс Convert
, но делая доказательства с Вашими функциями conversiГіn, встретился с тем, что talvez твоя проблема была следующей:
char Caracter = '3'; // 51 En ASCII ...
int Valor = Convert.ToInt32(Caracter); // Valor actual: 51
, поскольку, когда ты пробуешь конвертировать характер используя Convert
, ты берешь Вашу стоимость в таблице символов Американский стандартный код обмена информацией и не nГєmero реально, я рекомендую тебе делать любое из следующих действий:
Беря как пример следующий характер:
char c = '3'; // 51
Менять ее funciГіn на int.Parse(string)
:
int V = int.Parse(c.ToString());
Или реализовывать cast в string прямо в ней funciГіn Convert.ToInt32(object)
:
int V = Convert.ToInt32(c.ToString());
, Если то, что ты хочешь, состоит в том, чтобы доставать настоящую стоимость характера и не стоимость в таблице Американский стандартный код обмена информацией.
Применяя ее soluciГіn к твоей настоящей, одинокой проблеме ты должен менять эту линию:
valId[i] += Convert.ToInt32(letter);
Из-за:
valId[i] += Convert.ToInt32(letter.ToString());
И, смотря немного больше ты cГіdigo, откуда выходит индекс array? SegГєn я вижу, ты используешь цикл foreach
, ВїSeguro, что ты не распределяешь всю стоимость в тот же индекс?
Надеялся, что он помог тебе!
Проблема, - в котором ты не изменяешь индекс array, который ты используешь:
//Declaración de variables
char[] caracter;
int[] valId;
//Inicialización de variables
caracter = nextParticipantId.ToCharArray();
valId = new int[]{0,0,0,0,0,0,0,0,0,0}
//Sección del código
int i = 0;
foreach( char letter in caracter) {
Debug.Log("La letra es: " + letter);
int letra = Convert.ToInt32(letter);
Debug.Log("El valor de la letra es: " + letra);
valId[i++] += letra;
}