Среднее между цветами
|
|
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, Спасибо конечно, но я уже именно так и сделал)
|
|
| |