微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ArgumentOutOfRangeException:索引和长度必须引用字符串中的某个位置

如何解决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 举报,一经查实,本站将立刻删除。