Ejemplo n.º 1
0
 public void RegisterTriggerEnter(UnityAction <Collider> evt)
 {
     if (triggerEnterEvent == null)
     {
         triggerEnterEvent = new TriggerEnterEvent();
     }
     triggerEnterEvent.AddListener(evt);
 }
Ejemplo n.º 2
0
    private void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == "Controller")
        {
            note.Play();
            triggerEvent = new TriggerEnterEvent(sound, Record.Instance.recordStartTime, padIndex);

            SoundBandManager.Instance.HitColor(GetComponent <MeshRenderer>().material.GetColor("_EmissionColor"));
        }
    }
Ejemplo n.º 3
0
 void Handle(TriggerEnterEvent e)
 {
     if (e.egoComponent1.HasComponents <RoomSwitchComponent>() && e.egoComponent2.HasComponents <RoomSwitchAgentComponent>())
     {
         // The first colliding GameObject is an edible
         DealWithCollision(e.egoComponent1, e.egoComponent2);
     }
     else if (e.egoComponent1.HasComponents <RoomSwitchAgentComponent>() && e.egoComponent2.HasComponents <RoomSwitchComponent>())
     {
         // The first colliding GameObject is an edible
         DealWithCollision(e.egoComponent1, e.egoComponent2);
     }
 }
 void Handle(TriggerEnterEvent e)
 {
     if (e.egoComponent1.HasComponents <ObstacleComponent>() && e.egoComponent2.HasComponents <VulnerableComponent>())
     {
         // The first colliding GameObject is an edible
         DealWithCollision(e.egoComponent1, e.egoComponent2);
     }
     else if (e.egoComponent1.HasComponents <VulnerableComponent>() && e.egoComponent2.HasComponents <ObstacleComponent>())
     {
         // The second colliding GameObject is a brick
         DealWithCollision(e.egoComponent2, e.egoComponent1);
     }
 }
Ejemplo n.º 5
0
 void Handle(TriggerEnterEvent e)
 {
     if (e.egoComponent1.HasComponents <EdibleComponent>() && e.egoComponent2.HasComponents <MouthComponent>())
     {
         // The first colliding GameObject is an edible
         EatEdible(e.egoComponent1, e.egoComponent2);
     }
     else if (e.egoComponent1.HasComponents <MouthComponent>() && e.egoComponent2.HasComponents <EdibleComponent>())
     {
         // The second colliding GameObject is an edible
         EatEdible(e.egoComponent2, e.egoComponent1);
     }
 }
Ejemplo n.º 6
0
    private IEnumerator IePlayNote(TriggerEnterEvent note)
    {
        note.isPlaying = true;
        AudioSource playableSource = sourcePool.First(source => !source.isPlaying);

        playableSource.clip = note.sound;
        playableSource.Play();
        //playableSource.loop = true;

        yield return(new WaitForSeconds(note.length));

        //playableSource.Stop();
        note.isPlaying = false;
    }
Ejemplo n.º 7
0
    public void AddPressButtonEvent(TriggerEnterEvent padEvent, Color padColor)
    {
        if (!isRecording)
        {
            return;
        }
        record.Add(padEvent);

        int lowestNote  = record.Min(note => note.padIndex);
        int highestNote = record.Max(note => note.padIndex);

        rowCount = Mathf.Max(highestNote - lowestNote + 1, 5);

        // Track node 출력 부분
        GameObject temp       = Instantiate(nodeUIprefab, recordBg.rectTransform);
        float      noteHeight = TRACKGROUP_HEIGHT / rowCount;

        temp.GetComponent <RectTransform>().sizeDelta        = new Vector2((padEvent.length / SECONDS * TRACKGROUP_WIDTH) * 2, noteHeight);
        temp.GetComponent <RectTransform>().anchoredPosition = new Vector2((padEvent.timeOffset * TRACKGROUP_WIDTH / SECONDS), -(noteHeight * (highestNote - padEvent.padIndex)));

        //recordBg.uvRect = new Rect(0, 0, 50, noteHeight);

        temp.gameObject.name = padEvent.padIndex.ToString();
        temp.SetActive(true);
        temp.GetComponent <Image>().color = padColor;
        if (prevRowNote != lowestNote)
        {
            SortingHeight(highestNote, noteHeight);
        }
        if (prevTopNote != highestNote)
        {
            SortingHeight(highestNote, noteHeight);
        }
        prevTopNote = highestNote;
        prevRowNote = lowestNote;
        // 민찬
        //DataManager.Instance.OnRecordSave(padEvent.sound.name, padEvent.timeoffset, padEvent.length, padEvent.startTime);
    }
Ejemplo n.º 8
0
    public override void OnEnable()
    {
        base.OnEnable();
        NetwrokTimeline.OnForward(data =>
        {
            for (int i = 0; i < data.UserInputData[0].Length; i++)
            {
                for (int j = 0; j < data.UserInputData[0][i].Inputs.Length; j++)
                {
                    var userId     = data.UserInputData[0][i].UserId;
                    var eventInput = data.UserInputData[0][i].GetInput <EventInput>(j);
                    if (eventInput.Type == EventCode.GameStart)
                    {
                        var isRoomOwner = eventInput.Get <bool>(0);
                        if (!HasUser(userId))
                        {
                            var pos = isRoomOwner ? NetworkPlayerPrefab.transform.position + new Vector3(2, 0, -5) : NetworkPlayerPrefab.transform.position += new Vector3(-2, 0, -5);
                            var rot = isRoomOwner ? Quaternion.Euler(0, -90, 0) : Quaternion.Euler(0, 90, 0);

                            NetworkPrefabFactory.Instantiate(userId, data.TickId, NetworkPlayerPrefab, pos, rot);
                        }
                    }
                }
            }

            return(null);
        }).AddTo(this.Disposer);

        NetworkPlayerComponents.OnAdd().Subscribe(entity =>
        {
            if (NetworkPlayerComponents.Entities.Count == UserComponents.Entities.Count)
            {
                var evt    = new TriggerEnterEvent();
                evt.Source = GameStartId;
                EventSystem.Send(evt);
            }
        }).AddTo(this.Disposer);
    }
Ejemplo n.º 9
0
    private void OnLogin(ReceiveData data)
    {
        string[]   strs       = data.StringValue.Split(Separator);
        ReturnCode returnCode = (ReturnCode)int.Parse(strs[0]);

        if (returnCode == ReturnCode.Success)
        {
            int    userId     = int.Parse(strs[1]);
            string username   = strs[2];
            int    totalCount = int.Parse(strs[3]);
            int    winCount   = int.Parse(strs[4]);
            var    evt        = new TriggerEnterEvent();
            evt.Source = LobbyId;
            EventSystem.Send(evt);
            EventSystem.Send(new MessageEvent(LoginSuccessFeedback, LogType.Log));
            EventSystem.Send(new SpawnUserEvent(userId, username, totalCount, winCount, true, false));
            NetworkSystem.Publish(RequestCode.ListRooms, EmptyStr);
        }
        else
        {
            EventSystem.Send(new MessageEvent(UserNameOrPasswordIncorrectError, LogType.Error));
        }
    }
Ejemplo n.º 10
0
    protected override void Update()
    {
        base.Update();

        switch (state)
        {
        case LoopState.Pause:
            break;

        case LoopState.Ready:
            startText.text = (metronome.maxBeats - (metronome.beats + metronome.maxBeats - 1) % metronome.maxBeats).ToString();
            print($"{metronome.maxBeats} {metronome.beats}");
            break;

        case LoopState.Play:
            break;
        }
        if (isPlaying && currentPlayTime <= recordLoop.recordLength)
        {
            currentPlayTime += Time.deltaTime;
            shouldPlayNote   = recordLoop.record.FirstOrDefault(r => r.isNowPlaying(currentPlayTime) && !r.isPlaying);

            if (shouldPlayNote != null && shouldPlayNote.sound != null)
            {
                StartCoroutine(IePlayNote(shouldPlayNote));
            }
        }
        else
        {
            if (!isLoop)
            {
                isPlaying = false;
                SetState(LoopState.Pause);
            }
            currentPlayTime = 0;
        }
    }
Ejemplo n.º 11
0
    /********** コライダーのトリガーがオンの場合使う **********/

    private void OnTriggerEnter2D(Collider2D other)
    {
        // 衝突時に通知する
        TriggerEnterEvent?.Invoke(other);
    }
Ejemplo n.º 12
0
 void OnTriggerEnter( Collider collider )
 {
     var e = new TriggerEnterEvent( egoComponent, collider.gameObject.GetComponent<EgoComponent>(), collider );
     EgoEvents<TriggerEnterEvent>.AddEvent( e );
 }
Ejemplo n.º 13
0
 protected virtual void OnTriggerEnter(Collider other)
 {
     TriggerEnterUnityEvent.Invoke();
     TriggerEnterEvent?.Invoke(this, other);
 }
Ejemplo n.º 14
0
 void OnTriggerEnter(Collider other)
 {
     TriggerEnterEvent?.Invoke(other.transform);
 }
Ejemplo n.º 15
0
 public void TriggerMine(TriggerEnterEvent e, ActiveMineNode mine, SingleNode <TankActiveStateComponent> tank)
 {
     base.ScheduleEvent <SendTankMovementEvent>(tank);
 }
Ejemplo n.º 16
0
 public void TakeBonus(TriggerEnterEvent e, SingleNode <BonusActiveStateComponent> bonus, SelfTankNode tank)
 {
     base.ScheduleEvent <SendTankMovementEvent>(tank);
     base.NewEvent <BonusTakingRequestEvent>().Attach(bonus).Attach(tank).Schedule();
 }
Ejemplo n.º 17
0
 private void OnTriggerEnter(Collider other)
 {
     TriggerEnterEvent.Invoke();
 }
Ejemplo n.º 18
0
 protected void ExecuteTriggerEnter()
 {
     TriggerEnterEvent?.Invoke();
     OnTriggerEnterEvent.Invoke();
 }
Ejemplo n.º 19
0
    public override void OnEnable()
    {
        base.OnEnable();

        LobbyComponents.OnAdd().Subscribe(entity1 =>
        {
            var lobbyComponent = entity1.GetComponent <LobbyComponent>();

            lobbyComponent.CreateRoomButton.OnPointerClickAsObservable().Subscribe(_ =>
            {
                NetworkSystem.Publish(RequestCode.CreateRoom, EmptyStr);
            }).AddTo(this.Disposer).AddTo(lobbyComponent.Disposer);

            lobbyComponent.RefreshButton.OnPointerClickAsObservable().Subscribe(_ =>
            {
                NetworkSystem.Publish(RequestCode.ListRooms, EmptyStr);
            }).AddTo(this.Disposer).AddTo(lobbyComponent.Disposer);

            UserComponents.OnAdd().Subscribe(entity2 =>
            {
                var userComponent = entity2.GetComponent <UserComponent>();

                if (userComponent.IsLocalPlayer)
                {
                    userComponent.UserName.DistinctUntilChanged().Where(_ => lobbyComponent.UsernameText).Subscribe(name =>
                    {
                        lobbyComponent.UsernameText.text = name;
                    }).AddTo(this.Disposer).AddTo(lobbyComponent.Disposer).AddTo(userComponent.Disposer);

                    userComponent.TotalCount.DistinctUntilChanged().Where(_ => lobbyComponent.TotalCountText).Subscribe(count =>
                    {
                        lobbyComponent.TotalCountText.text = TotalCount1Str + count;
                    }).AddTo(this.Disposer).AddTo(lobbyComponent.Disposer).AddTo(userComponent.Disposer);

                    userComponent.WinCount.DistinctUntilChanged().Where(_ => lobbyComponent.WinCountText).Subscribe(count =>
                    {
                        lobbyComponent.WinCountText.text = WinCount1Str + count;
                    }).AddTo(this.Disposer).AddTo(lobbyComponent.Disposer).AddTo(userComponent.Disposer);
                }

                NetworkSystem.Receive(RequestCode.QuitRoom).Subscribe(data =>
                {
                    if (userComponent.UserId == int.Parse(data.StringValue) && (userComponent.IsLocalPlayer || userComponent.IsRoomOwner.Value))
                    {
                        var evt    = new TriggerEnterEvent();
                        evt.Source = LobbyId;
                        EventSystem.Send(evt);
                    }
                }).AddTo(this.Disposer).AddTo(lobbyComponent.Disposer).AddTo(userComponent.Disposer);
            }).AddTo(this.Disposer).AddTo(lobbyComponent.Disposer);

            NetworkSystem.Receive(RequestCode.CreateRoom).Subscribe(data =>
            {
                string[] strs         = data.StringValue.Split(Separator);
                ReturnCode returnCode = (ReturnCode)int.Parse(strs[0]);
                if (returnCode == ReturnCode.Success)
                {
                    int userId      = int.Parse(strs[1]);
                    string username = strs[2];
                    int totalCount  = int.Parse(strs[3]);
                    int winCount    = int.Parse(strs[4]);
                    EventSystem.Send(new SpawnUserEvent(userId, username, totalCount, winCount, true, true));
                    var evt    = new TriggerEnterEvent();
                    evt.Source = RoomId;
                    EventSystem.Send(evt);
                }
            }).AddTo(this.Disposer).AddTo(lobbyComponent.Disposer);

            NetworkSystem.Receive(RequestCode.ListRooms).Subscribe(data =>
            {
                foreach (var entity3 in RoomItemComponents.Entities)
                {
                    var viewComponent = entity3.GetComponent <ViewComponent>();
                    Destroy(viewComponent.Transforms[0].gameObject);
                }

                if (!string.IsNullOrEmpty(data.StringValue))
                {
                    string[] str1s = data.StringValue.Split(VerticalBar);
                    foreach (var str1 in str1s)
                    {
                        string[] str2s = str1.Split(Separator);
                        PrefabFactory.Instantiate(roomItemPrefab, lobbyComponent.RoomItemRoot, false, go =>
                        {
                            var roomItemComponent = go.GetComponent <RoomItemComponent>();

                            roomItemComponent.UserId              = int.Parse(str2s[0]);
                            roomItemComponent.UsernameText.text   = str2s[1];
                            roomItemComponent.TotalCountText.text = TotalCount2Str + str2s[2];
                            roomItemComponent.WinCountText.text   = WinCount2Str + str2s[3];
                        });
                    }
                }
            }).AddTo(this.Disposer).AddTo(lobbyComponent.Disposer);

            NetworkSystem.Receive(RequestCode.JoinRoom).Subscribe(data =>
            {
                string[] str1s        = data.StringValue.Split(VerticalBar);
                ReturnCode returnCode = (ReturnCode)int.Parse(str1s[0]);
                if (returnCode == ReturnCode.Success)
                {
                    for (int i = 1; i < str1s.Length; i++)
                    {
                        string[] str2s   = str1s[i].Split(Separator);
                        int userId       = int.Parse(str2s[0]);
                        string username  = str2s[1];
                        int totalCount   = int.Parse(str2s[2]);
                        int winCount     = int.Parse(str2s[3]);
                        bool isRoomOwner = bool.Parse(str2s[4]);
                        EventSystem.Send(new SpawnUserEvent(userId, username, totalCount, winCount, false, isRoomOwner));
                    }
                    var evt    = new TriggerEnterEvent();
                    evt.Source = RoomId;
                    EventSystem.Send(evt);
                }
                else
                {
                    EventSystem.Send(new MessageEvent(JoinFailFeedback, LogType.Warning));
                }
            }).AddTo(this.Disposer).AddTo(lobbyComponent.Disposer);
        }).AddTo(this.Disposer);

        RoomItemComponents.OnAdd().Subscribe(entity =>
        {
            var roomItemComponent = entity.GetComponent <RoomItemComponent>();

            roomItemComponent.JoinButton.OnPointerClickAsObservable().Subscribe(_ =>
            {
                NetworkSystem.Publish(RequestCode.JoinRoom, roomItemComponent.UserId.ToString());
            }).AddTo(this.Disposer).AddTo(roomItemComponent.Disposer);
        }).AddTo(this.Disposer);
    }
Ejemplo n.º 20
0
    private void OnChildsChanged(IEntity entity, CompositeDisposable childsChangeDisposer, Tweener centeringTweener)
    {
        var centerOnChild    = entity.GetComponent <CenterOnChild>();
        var viewComponent    = entity.GetComponent <ViewComponent>();
        var draggedPositions = new List <Vector3>();
        var direction        = Vector3.zero;
        var delta            = Vector3.zero;

        if (centerOnChild.Content)
        {
            childsChangeDisposer.Clear();

            for (int i = 0; i < centerOnChild.Content.childCount + 1; i++)
            {
                var index  = i;
                var target = index == centerOnChild.Content.childCount ? viewComponent.Transforms[0] : centerOnChild.Content.GetChild(index);

                target.OnPointerClickAsObservable().Where(eventData => !eventData.dragging && index < centerOnChild.Content.childCount).Subscribe(eventData =>
                {
                    if (centerOnChild.Index.Value == index)
                    {
                        var evt    = new TriggerEnterEvent();
                        evt.Source = target.gameObject;
                        EventSystem.Send(evt);
                    }
                    else
                    {
                        centerOnChild.Index.Value = index;
                    }
                }).AddTo(this.Disposer).AddTo(centerOnChild.Disposer).AddTo(childsChangeDisposer);

                target.OnBeginDragAsObservable().Where(_ => centeringTweener != null).Subscribe(_ =>
                {
                    centeringTweener.Kill();
                    centeringTweener = null;
                    direction        = Vector3.zero;
                    draggedPositions.Clear();
                    draggedPositions.Add(centerOnChild.Content.position);
                }).AddTo(this.Disposer).AddTo(centerOnChild.Disposer).AddTo(childsChangeDisposer);

                target.OnDragAsObservable().Subscribe(_ =>
                {
                    draggedPositions.Add(centerOnChild.Content.position);
                }).AddTo(this.Disposer).AddTo(centerOnChild.Disposer).AddTo(childsChangeDisposer);

                target.OnEndDragAsObservable().Subscribe(_ =>
                {
                    delta = draggedPositions.Count > 1 ? draggedPositions[draggedPositions.Count - 1] - draggedPositions[draggedPositions.Count - 2] : Vector3.zero;
                    for (int j = draggedPositions.Count - 1; j > 0; j--)
                    {
                        direction = Vector3.Normalize(draggedPositions[j] - draggedPositions[j - 1]);
                        if (direction != Vector3.zero)
                        {
                            break;
                        }
                    }
                    centerOnChild.Index.SetValueAndForceNotify(GetBestChild(entity, direction, delta));
                }).AddTo(this.Disposer).AddTo(centerOnChild.Disposer).AddTo(childsChangeDisposer);
            }
        }
    }
Ejemplo n.º 21
0
 public void OnTriggerEnter2D(Collider2D collider)
 {
     TriggerEnterEvent?.Invoke(collider);
 }
Ejemplo n.º 22
0
        void OnTriggerEnter(Collider collider)
        {
            var e = new TriggerEnterEvent(egoComponent, collider.gameObject.GetComponent <EgoComponent>(), collider);

            EgoEvents <TriggerEnterEvent> .AddEvent(e);
        }
Ejemplo n.º 23
0
 public void Explosion(TriggerEnterEvent e, RemoteTankNode targetTank, SpiderActiveNode spider, [JoinByTank] SingleNode <SelfTankComponent> tank)
 {
     MineUtil.ExecuteSplashExplosion(spider.Entity, tank.Entity, spider.rigidbody.Rigidbody.transform.position);
 }