如何解决ArgumentOutOfRangeException:索引和长度必须引用字符串中的某个位置
我的脚本有问题,如果有人能提供帮助,我将不胜感激。
问题来了:
ArgumentOutOfRangeException:索引和长度必须引用字符串中的某个位置。 参数名称:长度 System.String.Substring (system.int32 startIndex,system.int32 length) (at :0)
脚本是:
public class ColorTypeConverter
{
public string ToRGBHex(Color c)
{
return string.Format("{0:X2}{1:X2}{2:X2}",ToByte(c.r),ToByte(c.g),ToByte(c.b));
}
private static byte ToByte(float f)
{
f = Mathf.Clamp01(f);
return (byte)(f * 255);
}
private int HexToDec (string hex)
{
int dec = System.Convert.ToInt32(hex,16);
return dec;
}
private float HexToFloatnormalized(string hex) {
return HexToDec(hex) / 255f;
}
public Color GetColorFromString(string hexString) {
float red = HexToFloatnormalized(hexString.Substring(0,2));
float green = HexToFloatnormalized(hexString.Substring(2,2));
float blue = HexToFloatnormalized(hexString.Substring(4,2));
return new Color(red,green,blue);
}
}
UI 管理器脚本:
string s = PlayerPrefs.GetString("savecolorground");
ColorTypeConverter col = new ColorTypeConverter();
if(s != "")
ground.GetComponent<SpriteRenderer>().color = col.GetColorFromString(s);
else
ground.GetComponent<SpriteRenderer>().color = col.GetColorFromString("FFFFFF");
播放器脚本:
ColorTypeConverter colCon = new ColorTypeConverter();
string color = PlayerPrefs.GetString("savecolor");
if(color != "")
GetComponent<SpriteRenderer>().color = colCon.GetColorFromString(color);
else
GetComponent<SpriteRenderer>().color = colCon.GetColorFromString("2AFCFF");
GetComponent<TrailRenderer>().startColor = new Color(
GetComponent<SpriteRenderer>().color.r,GetComponent<SpriteRenderer>().color.g,GetComponent<SpriteRenderer>().color.b,255);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。