/// <summary> /// Updates focus values bassed on whether we are increasing /// texture num in focus or decreasing it /// </summary> /// <param name="increase"></param> private void UpdateFocus(bool increase) { Vector3 offset = new Vector3((back.sizeDelta.x * 0.5f) + carImageOne.rect.width, 0); List <Sprite> carSprites = InRoomManager.Instance.GetSelectableCarSprites(); if (increase) { //update texture number in focus (increasing it) bool outOfbounds = TextureNumInFocus == carSprites.Count; TextureNumInFocus = outOfbounds ? 1 : TextureNumInFocus + 1; //set position of car out of focus to the right of back carOutOfFocus.transform.position = back.position - offset; } else { //update texture number in focus (decreasing it) bool outOfbounds = TextureNumInFocus == 1; TextureNumInFocus = outOfbounds ? carSprites.Count : TextureNumInFocus - 1; //set position of car out of focus to the right of back carOutOfFocus.transform.position = back.position + offset; } //set new car sprite based on texture num in focus Image image = carOutOfFocus.GetComponent <Image>(); image.sprite = carSprites[TextureNumInFocus - 1]; carName.text = carNames[TextureNumInFocus - 1]; if (!CarTextureColors.ContainsKey(TextureNumInFocus)) { //if the texture colors dictionary doesn't contain the colors, add it CarTextureColors.Add(TextureNumInFocus, ((Texture2D)image.mainTexture).GetPixels()); } UpdateImageInVisability(carOutOfFocus, carOutOfFocus.GetComponent <RectTransform>().rect); }
/// <summary> /// Adds given texture to the dictionary, using its last /// character as digit as key /// </summary> /// <param name="tex"></param> private void AddTextureToDictionary(Texture2D tex) { int num = int.Parse(tex.name.Substring(tex.name.Length - 1)); CarTextureColors.Add(num, tex.GetPixels()); }