А вот и рабочий укороченный код. Конвертировать нужно не компонент InputField, а текст данного компонента.
Можно использовать также int.Parse(value).
using System;
using UnityEngine;
using UnityEngine.UI;
public class SimpleCalculator : MonoBehaviour
{
[SerializeField] private InputField _firstInput;
[SerializeField] private InputField _secondInput;
[SerializeField] private InputField _signInput;
[SerializeField] private Text _text;
// Methods
public void Calculator()
{
int a = int.Parse(_firstInput.text);
int b = int.Parse(_secondInput.text);
_text.text = GetResult(a, b).ToString();
}
private float GetResult(int a, int b)
{
switch(_signInput.text)
{
case "+": return Add(a, b);
case "-": return Substract(a, b);
case "*": return Multiply(a, b);
case "/": return Divide(a, b);
default: throw new Exception("Invalid sign");
}
}
private float Add(int a, int b) => a + b;
private float Substract(int a, int b) => a - b;
private float Multiply(int a, int b) => a * b;
private float Divide(int a, int b) => a / b;
}