Четверг, 21 Ноября 2024, 23:05

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Среднее между цветами
zisXДата: Суббота, 03 Октября 2015, 11:49 | Сообщение # 1
Neto Zis
Сейчас нет на сайте
есть три переменных цвета,

public Color currentColor;
public Color aColor;
public Color bColor;

также есть три перменных флоат

public float currentFloat;
public float aFloat=30;
public float bFloat=100;

каждую секунду currentFloat прибавляется на 1 значение выше чем была,
aColor = белый, bColor = черный

и нужно найти среднее между цветами и присвоить это значение currentColor.

если что находить среднее должно примерно так, currentFloat == aFloat, цвет белый, currentfloat == bFloat, цвет черный, currentFloat == (bFloat - aFloat)/2,
цвет примерно серый, т.е. среднее между белым и черным.

Не могу придумать как сделать, может вы поможете


KunkaДата: Суббота, 03 Октября 2015, 12:06 | Сообщение # 2
частый гость
Сейчас нет на сайте
прогулял школу? Среднее находится так (Z1+Z2+...Zn)/n;
public Color currentColor;
public Color aColor;
public Color bColor;
currentColor.r=(aColor.r+bColor.r)/2
currentColor.g=(aColor.g+bColor.g)/2
currentColor.b=(aColor.b+bColor.b)/2


хочешь сделать убийцу WOW, GTA, CRysis, AC - используй FishFace
zisXДата: Суббота, 03 Октября 2015, 12:41 | Сообщение # 3
Neto Zis
Сейчас нет на сайте
Kunka, умный больно? мне нужно сделать относительно другой переменной ( тем более я уже сделал )

Код

void UpdateColors()
{
          if (currentPhase == DayPhase.Morn)
          {
              float a = dayStart_ - mornStart_; // 100%
              float b = (timeMorn * 100 / a)/100;
              Debug.Log(b);
              currentColor = Color.Lerp(mornColor, dayColor, b);
              Camera.main.backgroundColor = currentColor;
          }
          else if (currentPhase == DayPhase.Day)
          {
              float a = downStart_ - dayStart_; // 100%
              float b = (timeDay * 100 / a) / 100;
              Debug.Log(b);
              currentColor = Color.Lerp(dayColor, downColor, b);
              Camera.main.backgroundColor = currentColor;
          }
          else if (currentPhase == DayPhase.Down)
          {
              float a = nightStart_ - downStart_; // 100%
              float b = (timeDown * 100 / a) / 100;
              Debug.Log(b);
              currentColor = Color.Lerp(downColor, nightColor, b);
              Camera.main.backgroundColor = currentColor;
          }
          else if (currentPhase == DayPhase.Night)
          {
              float a = dayLenght - nightStart_ + mornStart_; // 100%
              float b = (timeNight * 100 / a) / 100;
              Debug.Log(b);
              currentColor = Color.Lerp(nightColor, mornColor, b);
              Camera.main.backgroundColor = currentColor;
}




Сообщение отредактировал zisX - Суббота, 03 Октября 2015, 12:42
KunkaДата: Суббота, 03 Октября 2015, 12:50 | Сообщение # 4
частый гость
Сейчас нет на сайте
Цитата zisX ()
умный больно? мне нужно сделать относительно другой переменной ( тем более я уже сделал )

Цитата zisX ()
найти среднее между цветами

я виноват что ты не умеешь правильно объяснять?


хочешь сделать убийцу WOW, GTA, CRysis, AC - используй FishFace
zisXДата: Суббота, 03 Октября 2015, 12:52 | Сообщение # 5
Neto Zis
Сейчас нет на сайте
Kunka, да в этом я виноват, не дописал

SnakeRДата: Суббота, 03 Октября 2015, 14:57 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
zisX, все ж просто как 5 копеек

Color.Lerp

Код
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
     public Color lerpedColor = Color.white;
     void Update() {
         lerpedColor = Color.Lerp(Color.white, Color.black, Time.time);
     }
}


Unity3D Developer
Ваш лучший помощник при разработке в Unity3D
zisXДата: Суббота, 03 Октября 2015, 15:06 | Сообщение # 7
Neto Zis
Сейчас нет на сайте
SnakeR, Спасибо конечно, но я уже именно так и сделал)

  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг