Exemplo n.º 1
0
 public virtual void Initialize(
     DrumSequence firstSequence,
     int selfIndex,
     OnSequenceComplete sequenceCallback,
     List <Color> colorMap)
 {
 }
Exemplo n.º 2
0
    public override void Initialize(DrumSequence firstSequence, int selfIndex, OnSequenceComplete sequenceCallback, List <Color> colorMap)
    {
        this.selfIndex           = selfIndex;
        sequenceCompleteCallback = sequenceCallback;

        uiParent = transform.GetChild(0).gameObject;

        mainCamera             = Camera.main;
        originalCameraPosition = mainCamera.transform.localPosition;

        segmentHighlighter.Initialize();

        prompts = new List <DrumGamePrompt>();
        promptPrefab.SetActive(false);

        this.colorMap = colorMap;

        reactiveSequence = new ReactiveProperty <DrumSequence>(firstSequence);
        sequenceIndex    = new IntReactiveProperty(0);

        isVisible = new BoolReactiveProperty();
        isActive  = new BoolReactiveProperty();

        isActive.Subscribe(active => ToggleActivePromptHighlight(active));
        isActive.Subscribe(active => firstFrameActive = active);
        isActive.Subscribe(active => SetCamToOriginOnDisable(active));

        isVisible.Subscribe(visible => SetVisibility(visible));

        reactiveSequence.Subscribe(sequence => SetHiddenState(sequence));
        reactiveSequence.Subscribe(sequence => SpawnAndArrangePrompts(sequence));
        reactiveSequence.Subscribe(sequence => LabelDrumPrompts(sequence));
        reactiveSequence.Subscribe(sequence => ColorDrumPrompts(sequence));
        reactiveSequence.Subscribe(sequence => SetRepeatsValue(sequence));
        reactiveSequence.Subscribe(delegate { if (cameraZoomingOutCoroutine != null)
                                              {
                                                  StopCoroutine(cameraZoomingOutCoroutine);
                                              }
                                   });
        if (lineEditor != null)
        {
            reactiveSequence.Subscribe(sequence => lineEditor.SetSequence(sequence));
        }

        sequenceIndex.Subscribe(index => SetPromptHighlight(index));
        sequenceIndex.Subscribe(index => AnimateCameraFollow(index));

        var toggleEditStream = Observable.EveryUpdate().Where(_ => Input.GetKeyDown(toggleEditingKey));

        toggleEditStream.Subscribe(_ => editing = !editing);
        toggleEditStream.Subscribe(_ => lineEditor.isEditing.Value = editing);
        toggleEditStream.Subscribe(_ => Debug.Log($"Line mode Editing set to {editing}"));

        if (lineEditor != null)
        {
            lineEditor.SetPromptsRef(prompts);
        }
    }
Exemplo n.º 3
0
    private IntReactiveProperty repeatsRemaining; //iterations left before advancing levelIndex

    public override void Initialize(DrumSequence firstSequence, int selfIndex, OnSequenceComplete sequenceCallback, List <Color> colorMap)
    {
        this.selfIndex           = selfIndex;
        sequenceCompleteCallback = sequenceCallback;

        uiParent = transform.GetChild(0).gameObject;

        prompts = new List <DrumGamePrompt>();
        promptPrefab.SetActive(false);

        this.colorMap = colorMap;

        arcHighlighter.Initialize();

        reactiveSequence = new ReactiveProperty <DrumSequence>(firstSequence);
        repeatsRemaining = new IntReactiveProperty(reactiveSequence.Value.repetitions);
        sequenceIndex    = new IntReactiveProperty(0);

        isVisible = new BoolReactiveProperty();
        isActive  = new BoolReactiveProperty();

        isActive.Subscribe(active => ToggleActivePromptHighlight(active));
        isActive.Subscribe(active => firstFrameActive = active);
        isVisible.Subscribe(visible => SetVisibility(visible));

        reactiveSequence.Subscribe(sequence => SetHiddenState(sequence));
        reactiveSequence.Subscribe(sequence => SpawnAndArrangePrompts(sequence));
        reactiveSequence.Subscribe(sequence => LabelDrumPrompts(sequence));
        reactiveSequence.Subscribe(sequence => ColorDrumPrompts(sequence));
        reactiveSequence.Subscribe(sequence => SetRepeatsValue(sequence));
        reactiveSequence.Subscribe(sequence => arcHighlighter.DrawArcs(sequence.keys.Count));

        sequenceIndex.Subscribe(index => SetPromptHighlight(index));

        repeatsRemaining.Subscribe(remaining => SetRepeatsText(remaining));

        baseX = highlightPivotT.rotation.eulerAngles.x;
        baseY = highlightPivotT.rotation.eulerAngles.y;
    }