[링크] [Unity-C#] 특정 국가에서 크래시가 난다면 CultureInfo를 확인하자
[링크] https://lunchballer.com/archives/1326
[참조] https://mentum.tistory.com/615
[체크해야 될 함수] 더 있을수도..
float.Parse / float.TryParse / float.ToString
double.Parse / double.TryParse / double.ToString
int.Parse / int.TryParse / int.ToString
long.Parse / long.TryParse / long.ToString
BigInteger.Parse / BigInteger.TryParse / BigInteger.ToString
DateTime.Parse / DateTime.ParseExact / DateTime.TryParse / DateTime.TryParseExact / DateTime.ToString
TypeConverter.ConvertFrom / TypeConverter.ConvertTo
Convert.To??? 시리즈(Convert.ToInt16/ToInt32/ToInt64/ToUInt16/ToUInt32/ToUInt64,ToDecimal,ToDouble,ToSByte,ToSingle 등)
.ToLower / .ToUpper
string.Format
[첨언]
Unity 2018에서 Unity 2021로 포팅을 하고 업데이트를 했는데 이상한 에러가 크래시레포트에 많이 수집돼서 확인해보니
위의 링크에 보이는 문제로 보인다.
Unity 2019 부터 바뀐부분이 있어서(참조 링크 보면 됨) int float double BigInteger 등을 Parse 할 때 System.Globalization.CultureInfo.InvariantCulture을 무조건 넣어줘야 될 것 같다.
(CurrnetCulture는 건들면 문제가 생길 것 같아서 그냥 노가다로 다 넣었다.)
P.s. 문화권 문제라 한국에서는 아무리 테스트를 해도 크래시가 안나니 무슨 버그인지 몰라서 한참 헤멤..
[추가]
CultureInfo 관련 이슈가 있는 함수가 더 있어서 추가해 둠.
아래 함수 2개를 문화권 영향받지 않도록 변경했다.
이 두 함수는 함수 자체가 문화권 영향받지 않는 함수가 있어서 편한 것 같다.
TypeConverter.ConvertFrom() → TypeConverter.ConvertFromInvariantString()
TypeConverter.ConvertTo() → TypeConverter.ConvertToInvariantString()
[참고] https://learn.microsoft.com/ko-kr/dotnet/api/system.componentmodel.int32converter?view=net-7.0
[나라별 숫자표기 참고] https://theqoo.net/square/298509638
[숫자표기 참고2] https://docs.oracle.com/cd/E19683-01/816-3980/overview-48/index.html
[Date format by country] https://gist.github.com/mlconnor/1887156