Skip to content

Instantly share code, notes, and snippets.

void Start()
{
Observable.Timer(TimeSpan.FromSeconds(Random.Range(0,1.5f)) //0-1.5秒後に値を発行
.Subscribe(_=>
{
this.UpdateAsObservable().Subscribe(Action());
            }).AddTo(this); //このコンポーネントが削除されたら中断する
}
void Action()
@TORISOUP
TORISOUP / input.cs
Last active January 31, 2017 14:15
this.UpdateAsObservable().Where( _ => Input.GetButtonDown(”Jump”) )
.Subscribe(_=>{
Observable.NextFrame(FrameCountType.FixedUpdate) )
.Subscribe(__=> rigidBody.AddForce(Vector3.Up));
});
@TORISOUP
TORISOUP / 例.cs
Last active September 2, 2016 13:22
//BlockCoreはGameManagerを知らない
calss BlcokCore : MonoBehaviour
{
//ブロック作成通知Subject
private Subject<int> createBlockSubject = new Subject<int>();
//ブロック破壊通知Subject
private Subject<int> destroyBlockSubject = new Subject<int>();
//ブロック作成通知
//値は生成されたブロックID
// ゲームのシーン一覧を扱うenum
// シーン一覧をenumで定義しておくと、文字列を毎回打たなくて良いから管理がちょっと楽になる
// (定義する要素名はUnityのScene名と一致させておくこと)
public enum GameScenes
{
Title,
MainMenu,
OptionMenu,
Stage1,
Stage2,
@TORISOUP
TORISOUP / mmm.json
Last active May 18, 2016 17:33
MMM.json
//旧
{
"name": "ゆかり",
"text": "こんにちはみなさん",
"emotion": "greeting",
"tag": "white",
"isInterrupted": false
}
//2.1以降
@TORISOUP
TORISOUP / hold.cs
Last active February 17, 2016 11:38
var IsHoldReactiveProperty =
this.UpdateAsObservable()
.Select(_ => Input.GetMouseButton(0))
.Buffer(30, 1)
.Select(x => x.All(v => v))
.ToReactiveProperty();
IsHoldReactiveProperty.Subscribe(x => Debug.Log(x));
Debug.Log(IsHoldReactiveProperty.Value);
//ファイアーボール側のOnCollisionEnterの実装例
void OnCollisionEnter(Collision coll)
{
//すでにダメージを与えた後なら何もしない
if (isDisabled) return;
// 対象がダメージを受けることができるオブジェクトであるか調べる
var target = coll.gameObject.GetComponent<IDmageable>();
if ( target == null ) return;
void Update()
{
intervalTime += Time.deltaTime;
// マウス入力で左クリックをした瞬間
if (Input.GetMouseButtonDown(0))
{
if (intervalTime >= 3.0f)
{
StartCoroutine(CreatePrefabCoroutine());
public class TestScript : MonoBehaviour
{
public Button buttonA;
public Button buttonB;
public Button buttonC;
private void Start()
{
var eventA = buttonA.OnClickAsObservable();
@TORISOUP
TORISOUP / ObservableButtonLongDownTrigger.cs
Last active March 11, 2019 00:22
押された瞬間&長押しされたら一定間隔で発火する
using System;
using UnityEngine;
using System.Collections;
using UniRx;
using UniRx.Triggers;
using UnityEngine.EventSystems;
public class ObservableButtonLongDownTrigger : ObservableTriggerBase, IPointerDownHandler, IPointerUpHandler
{