Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using JetBrains.Annotations;
- using Scripts.Enums;
- using Scripts.MonoBehaviours.Controllers;
- using System;
- using UnityEngine;
- namespace Scripts.MonoBehaviours
- {
- public class OpponentMotionReceiver : MonoBehaviour
- {
- private SceneController sceneController;
- private MultiplayerController multiplayerController;
- public event EventHandler<BlockReleasedEventArgs> Released;
- [UsedImplicitly]
- private void Start()
- {
- Debug.Log("Start OpponentMotionReceiver");
- gameObject.AddComponent<DontDestroyOnLoad>();
- sceneController = FindObjectOfType<SceneController>();
- multiplayerController = FindObjectOfType<MultiplayerController>();
- sceneController.LoadingScene += LoadingSceneHandler;
- multiplayerController.RealTimeMsgReceived += MsgReceived;
- }
- private void LoadingSceneHandler(object sender, SceneLoadEventArgs args)
- {
- switch (args.Scene)
- {
- case Scene.Game:
- case Scene.Home:
- {
- Debug.Log("destroy");
- Destroy(gameObject);
- break;
- }
- }
- }
- private void OnDisable()
- {
- Debug.Log("OnDisable OpponentMotionReceiver");
- }
- [UsedImplicitly]
- private void OnDestroy()
- {
- Debug.Log("OnDestroy OpponentMotionReceiver");
- multiplayerController.RealTimeMsgReceived -= MsgReceived;
- sceneController.LoadingScene -= LoadingSceneHandler;
- }
- private void MsgReceived(object sender, RealTimeMsgReceivedEventArgs args)
- {
- if(args.MsgType != MsgType.PlayerMotion) return;
- var correct = args.Data[0] == 1;
- var motionArgs = new BlockReleasedEventArgs(correct);
- if (Released != null) Released(this, motionArgs);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement