protected override Tween DOPlay() { if (null == m_Light) { return(null); } // end if return(m_Light.DOColor(m_toColor, m_duration)); }
public SlotLightColorChanger(UnityEngine.Light light, IObservable <SlotProductionStatus> observableStatus) { //当たったときに再生するSequenceを登録 sequenceSwitcher.Register(SlotProductionStatus.Winning, DOTween.Sequence() .Append(light.DOColor(new Color(0, 0, 1), .5f)) .Append(light.DOColor(new Color(0, 1, 0), .5f)) .Append(light.DOColor(new Color(1, 0, 0), .5f)) .SetLoops(-1)); //ステータスによって実行する処理(ライト色変更) actionTable = new Dictionary <SlotProductionStatus, Action>() { [SlotProductionStatus.Idol] = () => { }, [SlotProductionStatus.Rolling] = () => light.color = Color.white, [SlotProductionStatus.Reaching] = () => light.color = Color.yellow, [SlotProductionStatus.Winning] = () => { }, }; //ステータス変更に応じてライトを制御 observableStatus.Subscribe(status => sequenceSwitcher.SwitchTo(status)); observableStatus.Select(status => actionTable[status]) .Subscribe(action => action()); }
static int DOColor(IntPtr L) { try { ToLua.CheckArgsCount(L, 3); UnityEngine.Light obj = (UnityEngine.Light)ToLua.CheckObject(L, 1, typeof(UnityEngine.Light)); UnityEngine.Color arg0 = ToLua.ToColor(L, 2); float arg1 = (float)LuaDLL.luaL_checknumber(L, 3); DG.Tweening.Tweener o = obj.DOColor(arg0, arg1); ToLua.PushObject(L, o); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }