Пример #1
0
        public void Prepare(int slideIndex)
        {
            if (mainPlayerController == null)
            {
                return;
            }
            Debug.Log("Prepping talk");
            mainPlayer      = mainPlayerController.vPlayer;
            lookaheadPlayer = lookaheadPlayerController.vPlayer;

            mainPlayerController.currUrl = talkUrl;
            currSlide = slideIndex;
            var currSlideStart = GetSlideStart();

            mainPlayerController.LoadAndSeek(currSlideStart);

            if (!isOwner)
            {
                lookaheadPlayer.Stop();
                lookaheadPlayerController.enabled = false;
                return;
            }

            lookaheadPlayerController.enabled = true;
            lookaheadPlayerController.currUrl = talkUrl;
            lookaheadPlayerController.LoadAndSeek(GetNextSlideEnd(currSlideStart));
        }
Пример #2
0
        public void Init()
        {
            // Init Check
            if (initComplete)
            {
                return;
            }
            // Variables
            baseVRCVideoPlayer = (BaseVRCVideoPlayer)GetComponent(typeof(BaseVRCVideoPlayer));
            // GetBaseVRCVideoPlayer().Loop = false;
            // TODO: Add checks to ensure VideoURL is empty and AutoPlay is false
            // This is currently impossible because casting from BaseVRCVideoPlayer to VRCAVProVideoPlayer is not supported

            /*
             * VRCAVProVideoPlayer vrcAvProVideoPlayer = (VRCAVProVideoPlayer)GetBaseVRCVideoPlayer();
             * if (!string.IsNullOrEmpty(vrcAvProVideoPlayer.VideoURL.Get()))
             * { Debug.LogError("Error: URL field must be empty on all VRCAVProVideoPlayer components."); }
             * if (vrcAvProVideoPlayer.AutoPlay)
             * { Debug.LogError("Error: AutoPlay must be disabled on all VRCAVProVideoPlayer components."); }
             */
            loaded = false;
            // Init Finalize
            initComplete = true;
            Debug.Log("Completed Init MultiVideoPlayer");
        }
Пример #3
0
        void ChangePlayerMode()
        {
            if (currentPlayerMode == _localPlayerMode)
            {
                return;
            }

            _nextPlaylistIndex = -2;
            _currentPlayer.Stop();
            _locallyPaused = _ownerPaused = false;

            switch (currentPlayerMode)
            {
            case PLAYER_MODE_VIDEO:
                _currentPlayer = unityVideoPlayer;
                syncModeController.SetVideoVisual();
                pauseIcon.SetActive(true);
                stopIcon.SetActive(false);
                videoProgressSlider.gameObject.SetActive(true);
                break;

            case PLAYER_MODE_STREAM:
                _currentPlayer = avProVideoPlayer;
                syncModeController.SetStreamVisual();
                pauseIcon.SetActive(false);
                stopIcon.SetActive(true);
                videoProgressSlider.gameObject.SetActive(false);
                break;
            }

            UpdateScreenMaterial(SCREEN_MODE_NORMAL);

            _localPlayerMode = currentPlayerMode;
        }
Пример #4
0
 public void OnPowerOnLive()
 {
     DebugLog($"Received a live player power-on event.");
     enabled = true;
     _status = _status & ~_status_off | _status_on | _status_live | _status_stop;
     _player = _player2;
     ValidateView();
 }
Пример #5
0
 public void OnPowerOnVideo()
 {
     DebugLog($"Received a video player power-on event.");
     enabled = true;
     _status = _status & ~_status_off | _status_on | _status_video | _status_stop;
     _player = _player1;
     ValidateView();
 }
Пример #6
0
 public void OnPowerOff()
 {
     DebugLog($"Received a power-off event.");
     enabled = false;
     _status = _status_off | _status_stop;
     _player1.Stop();
     _player2.Stop();
     _addressInput.SetUrl(VRCUrl.Empty);
     _player       = null;
     _progressDrag = false;
     ValidateView();
 }
Пример #7
0
        private void Start()
        {
            unityVideoPlayer.Loop = false;
            unityVideoPlayer.Stop();
            avProVideoPlayer.Loop = false;
            avProVideoPlayer.Stop();

            _currentPlayer = unityVideoPlayer;
            //_currentPlayer = avProVideoPlayer;
            _videoRenderTex = (RenderTexture)screenRenderer.sharedMaterial.GetTexture("_EmissionMap");

            PlayNextVideoFromPlaylist();
#if !UNITY_EDITOR // Causes null ref exceptions so just exclude it from the editor
            masterTextField.text = Networking.GetOwner(masterCheckObj).displayName;
#endif
        }
Пример #8
0
        void Start()
        {
            avProVideo.Loop = false;
            avProVideo.Stop();

            _currentPlayer = avProVideo;

            if (Networking.IsOwner(gameObject))
            {
                _syncLocked = defaultLocked;
                locked      = _syncLocked;
                RequestSerialization();

                _PlayVideo(defaultUrl);
            }
        }
Пример #9
0
        void ChangePlayerMode()
        {
            if (currentPlayerMode == _localPlayerMode)
            {
                return;
            }

            _nextPlaylistIndex = -1;
            _currentPlayer.Stop();
            _locallyPaused = _ownerPaused = false;

            Material screenMaterial = screenRenderer.sharedMaterial;

            switch (currentPlayerMode)
            {
            case PLAYER_MODE_VIDEO:
                _currentPlayer = unityVideoPlayer;
                screenMaterial.SetTexture("_EmissionMap", _videoRenderTex);
                screenMaterial.SetInt("_IsAVProInput", 0);
                syncModeController.SetVideoVisual();
                pauseIcon.SetActive(true);
                stopIcon.SetActive(false);
                videoProgressSlider.gameObject.SetActive(true);
                break;

            case PLAYER_MODE_STREAM:
                _currentPlayer = avProVideoPlayer;
                screenMaterial.SetTexture("_EmissionMap", streamRTSource.sharedMaterial.GetTexture("_MainTex"));
                screenMaterial.SetInt("_IsAVProInput", 1);
                syncModeController.SetStreamVisual();
                pauseIcon.SetActive(false);
                stopIcon.SetActive(true);
                videoProgressSlider.gameObject.SetActive(false);
                break;
            }

            _localPlayerMode = currentPlayerMode;
        }
 public void SetVideoInstance(BaseVRCVideoPlayer instance)
 {
     videoPlayer = instance;
 }
Пример #11
0
        public void ExecuteTests()
        {
            SetProgramVariable("transformIn", transform);

            tester.TestAssertion("GetComponent on object strongbox", transformIn.GetComponent <Transform>().position != Vector3.one * 1000f); // Shouldn't throw

            tester.TestAssertion("GetComponent UdonSharp Type", transformIn.GetComponent <GetComponentTest>() != null);

            tester.TestAssertion("GetComponent on GameObject", transformIn.gameObject.GetComponent <Transform>() != null);

            tester.TestAssertion("GetComponent user type on GameObject", transformIn.gameObject.GetComponent <GetComponentTest>() != null);

            tester.TestAssertion("GetComponent on GameObject 2", GameObject.Find("GetComponents").GetComponent <GetComponentTest>() != null);

            transforms = new[] { transform, transform };

            // Udon StrongBox assignment test
            transforms[1].GetComponentInChildren <BoxCollider>().enabled = false;
            transforms[1].GetComponentInChildren <BoxCollider>().enabled = true;

            tester.TestAssertion("GetComponent<Transform>()", GetComponent <Transform>() != null);

            tester.TestAssertion("GetComponent(typeof(Transform))", GetComponent(typeof(Transform)) != null);

            BoxCollider[] colliders = GetComponentsInChildren <BoxCollider>();

            tester.TestAssertion("GetComponentsInChildren<BoxCollider>()", colliders.Length == 3);

            tester.TestAssertion("GetComponentInChildren<NameOf>()", GetComponentInChildren <NameOf>() != null);

            NameOf[] nameOfs = GetComponentsInChildren <NameOf>();

            tester.TestAssertion("GetComponentsInChildren<NameOf>()", nameOfs.Length == 3);

            tester.TestAssertion("GetComponentsInChildren<MeshRenderer>()", GetComponentsInChildren <MeshRenderer>().Length == 2);

#if COMPILER_UDONSHARP
            UdonSharpBehaviour getBehaviour = (UdonSharpBehaviour)modObject.GetComponent(typeof(UdonBehaviour));

            tester.TestAssertion("Get UdonBehaviour typeof(UdonBehaviour)", getBehaviour != null);

            long typeID = GetUdonTypeID <NameOf>();

            tester.TestAssertion("Type ID matches", typeID == getBehaviour.GetUdonTypeID());
#endif

            tester.TestAssertion("Correct number of UdonBehaviours on gameobject", modObject.GetComponents(typeof(UdonBehaviour)).Length == 4);

            videoPlayer      = (VRCUnityVideoPlayer)GetComponent(typeof(VRCUnityVideoPlayer));
            avProVideoPlayer = (VRCAVProVideoPlayer)GetComponent(typeof(VRCAVProVideoPlayer));
            baseVideoPlayer  = (BaseVRCVideoPlayer)GetComponent(typeof(BaseVRCVideoPlayer));

            VRCStation station;
            station = (VRCStation)GetComponent(typeof(VRCStation));

            // Should compile
            GetComponents <Collider>()[0].enabled = false;
            GetComponents <Collider>()[0].enabled = true;

            // U# inheritance
            tester.TestAssertion("Base type GetComponent", inheritContainer.GetComponents <TestInheritanceClassBase>().Length == 3);
            tester.TestAssertion("Inherited GetComponent 1", inheritContainer.GetComponents <ClassA>().Length == 1);
            tester.TestAssertion("Inherited GetComponent 2", inheritContainer.GetComponents <ClassB>().Length == 2);
            tester.TestAssertion("Inherited GetComponent 3", inheritContainer.GetComponents <ClassC>().Length == 1);

            tester.TestAssertion("Get UdonBehaviour", GetComponent <UdonBehaviour>());
            tester.TestAssertion("Get UdonBehaviours", GetComponents <UdonBehaviour>().Length == 2);
            tester.TestAssertion("Get UdonBehaviours 2", inheritContainer.GetComponents <UdonBehaviour>().Length == 5);
            tester.TestAssertion("Get VRC component 1", GetComponent <VRCObjectSync>());
            tester.TestAssertion("Get VRC component 2", GetComponent <VRCAvatarPedestal>());
            tester.TestAssertion("Get VRC component 3", GetComponent <VRC_AvatarPedestal>());
            tester.TestAssertion("Get VRC components 1", GetComponents <VRC_AvatarPedestal>().Length == 1 && GetComponents <VRC_AvatarPedestal>()[0] != null);
        }
Пример #12
0
        private void Start()
        {
            if (settingsProfile != null)
            {
                allowSeeking        = settingsProfile.allowSeeking;
                defaultUnlocked     = settingsProfile.defaultUnlocked;
                defaultStream       = settingsProfile.defaultStream;
                controlMode         = settingsProfile.controlMode;
                defaultPlaylistMode = settingsProfile.defaultPlaylistMode;
                _streamBypassOwner  = settingsProfile.streamBypassOwner;

                logoTexture         = settingsProfile.logoTexture;
                loopTexture         = settingsProfile.connectingTexture;
                audioOnlyTexture    = settingsProfile.audioOnlyTexture;
                errorBlockedTexture = settingsProfile.errorBlockedTexture;

                videoControlHandler      = settingsProfile.videoControlHandler;
                playlist                 = settingsProfile.playlist;
                extraScreenMaterials     = settingsProfile.materialUpdateList;
                extraScreenMaterialProps = settingsProfile.materialTexList;
                userWhitelist            = settingsProfile.userWhitelist;
            }

            foreach (string user in userWhitelist)
            {
                if (Networking.LocalPlayer.displayName == user)
                {
                    _isWhitelisted = true;
                }
            }


            unityVideoPlayer.Loop = false;
            unityVideoPlayer.Stop();
            avProVideoPlayer.Loop = false;
            avProVideoPlayer.Stop();

            _currentPlayer = unityVideoPlayer;
            //_currentPlayer = avProVideoPlayer;
            _videoRenderTex = (RenderTexture)screenRenderer.sharedMaterial.GetTexture("_EmissionMap");

            if (defaultUnlocked && Networking.IsOwner(gameObject))
            {
                _masterOnly      = false;
                _masterOnlyLocal = false;
            }

            if (defaultStream && Networking.IsOwner(gameObject))
            {
                currentPlayerMode = PLAYER_MODE_STREAM;
                ChangePlayerMode();
                _nextPlaylistIndex = 0;
            }

            SetPlaylistMode(defaultPlaylistMode);
            UpdateScreenMaterial(SCREEN_MODE_LOGO);

            PlayNextVideoFromPlaylist();

#if !UNITY_EDITOR // Causes null ref exceptions so just exclude it from the editor
            masterTextField.text = Networking.GetOwner(masterCheckObj).displayName;
#endif
        }
Пример #13
0
 private void Start()
 {
     unityVideo.Loop = false;
     _currentPlayer  = unityVideo;
 }
Пример #14
0
        public void ExecuteTests()
        {
            SetProgramVariable("transformIn", transform);

            tester.TestAssertion("GetComponent on object strongbox", transformIn.GetComponent <Transform>().position != Vector3.one * 1000f); // Shouldn't throw

            tester.TestAssertion("GetComponent UdonSharp Type", transformIn.GetComponent <GetComponentTest>() != null);

            tester.TestAssertion("GetComponent on GameObject", transformIn.gameObject.GetComponent <Transform>() != null);

            tester.TestAssertion("GetComponent user type on GameObject", transformIn.gameObject.GetComponent <GetComponentTest>() != null);

            tester.TestAssertion("GetComponent on GameObject 2", GameObject.Find("GetComponents").GetComponent <GetComponentTest>() != null);

            transforms = new[] { transform, transform };

            // Udon StrongBox assignment test
            transforms[1].GetComponentInChildren <BoxCollider>().enabled = false;
            transforms[1].GetComponentInChildren <BoxCollider>().enabled = true;

            tester.TestAssertion("GetComponent<Transform>()", GetComponent <Transform>() != null);

            tester.TestAssertion("GetComponent(typeof(Transform))", GetComponent(typeof(Transform)) != null);

            BoxCollider[] colliders = GetComponentsInChildren <BoxCollider>();

            tester.TestAssertion("GetComponentsInChildren<BoxCollider>()", colliders.Length == 3);

            tester.TestAssertion("GetComponentInChildren<NameOf>()", GetComponentInChildren <NameOf>() != null);

            NameOf[] nameOfs = GetComponentsInChildren <NameOf>();

            tester.TestAssertion("GetComponentsInChildren<NameOf>()", nameOfs.Length == 3);

            tester.TestAssertion("GetComponentsInChildren<MeshRenderer>()", GetComponentsInChildren <MeshRenderer>().Length == 2);

#if COMPILER_UDONSHARP
            UdonSharpBehaviour getBehaviour = (UdonSharpBehaviour)modObject.GetComponent(typeof(UdonBehaviour));

            tester.TestAssertion("Get UdonBehaviour typeof(UdonBehaviour)", getBehaviour != null);

            long typeID = GetUdonTypeID <NameOf>();

            tester.TestAssertion("Type ID matches", typeID == getBehaviour.GetUdonTypeID());
#endif

            tester.TestAssertion("Correct number of UdonBehaviours on gameobject", modObject.GetComponents(typeof(UdonBehaviour)).Length == 4);

            videoPlayer      = (VRCUnityVideoPlayer)GetComponent(typeof(VRCUnityVideoPlayer));
            avProVideoPlayer = (VRCAVProVideoPlayer)GetComponent(typeof(VRCAVProVideoPlayer));
            baseVideoPlayer  = (BaseVRCVideoPlayer)GetComponent(typeof(BaseVRCVideoPlayer));

            VRCStation station;
            station = (VRCStation)GetComponent(typeof(VRCStation));

            //Debug.Log(getBehaviour.GetUdonTypeID());
            //Debug.Log(getBehaviour.GetUdonTypeName());

            //foreach (Component behaviour in modObject.GetComponents(typeof(UdonBehaviour)))
            //{
            //    Debug.Log("Component name: " + ((UdonSharpBehaviour)behaviour).GetUdonTypeName());
            //}
        }
Пример #15
0
        private void Start()
        {
#if UDONCONSOLE
            InitializeUConsoleIfNeeded();
#endif
            DebugLog($"Started `{_appname} {_version}`.");

            _player1 = (VRCUnityVideoPlayer)GetComponent(typeof(VRCUnityVideoPlayer));
            _player2 = (VRCAVProVideoPlayer)GetComponent(typeof(VRCAVProVideoPlayer));

            _panel1           = transform.Find("Control/Panel").gameObject;
            _lock1            = transform.Find("Control/Panel/Lock").gameObject;
            _lock1Button      = transform.Find("Control/Panel/Lock/Button").GetComponent <Button>();
            _lock1Image       = transform.Find("Control/Panel/Lock/Button/Image").GetComponent <Image>();
            _lock2            = transform.Find("Control/Panel/UnLock").gameObject;
            _lock2Button      = transform.Find("Control/Panel/UnLock/Button").GetComponent <Button>();
            _lock2Image       = transform.Find("Control/Panel/UnLock/Button/Image").GetComponent <Image>();
            _versionText      = transform.Find("Control/Panel/Text").GetComponent <Text>();
            _versionText.text = $"{_appname} {_version}";
            _video            = transform.Find("Control/Panel/Video").gameObject;
            _videoButton      = transform.Find("Control/Panel/Video/Button").GetComponent <Button>();
            _videoText        = transform.Find("Control/Panel/Video/Button/Text").GetComponent <Text>();
            _live             = transform.Find("Control/Panel/Live").gameObject;
            _liveButton       = transform.Find("Control/Panel/Live/Button").GetComponent <Button>();
            _liveText         = transform.Find("Control/Panel/Live/Button/Text").GetComponent <Text>();

            _panel2         = transform.Find("Control/Panel (1)").gameObject;
            _pause          = transform.Find("Control/Panel (1)/Pause").gameObject;
            _pauseButton    = transform.Find("Control/Panel (1)/Pause/Button").GetComponent <Button>();
            _pauseImage     = transform.Find("Control/Panel (1)/Pause/Button/Image").GetComponent <Image>();
            _play           = transform.Find("Control/Panel (1)/Play").gameObject;
            _playButton     = transform.Find("Control/Panel (1)/Play/Button").GetComponent <Button>();
            _playImage      = transform.Find("Control/Panel (1)/Play/Button/Image").GetComponent <Image>();
            _message        = transform.Find("Control/Panel (1)/Message").gameObject;
            _messageText    = transform.Find("Control/Panel (1)/Message/Text").GetComponent <Text>();
            _progress       = transform.Find("Control/Panel (1)/Message/Progress").gameObject;
            _progressSlider = transform.Find("Control/Panel (1)/Message/Progress").GetComponent <Slider>();
            _address        = transform.Find("Control/Panel (1)/Address").gameObject;
            _addressInput   = (VRCUrlInputField)transform.Find("Control/Panel (1)/Address").GetComponent(typeof(VRCUrlInputField));
            _sync           = transform.Find("Control/Panel (1)/Sync").gameObject;
            _off            = transform.Find("Control/Panel (1)/PowerOff").gameObject;
            _offButton      = transform.Find("Control/Panel (1)/PowerOff/Button").GetComponentInChildren <Button>();
            _offText        = transform.Find("Control/Panel (1)/PowerOff/Button/Text").GetComponentInChildren <Text>();

            _quad         = transform.Find("Screen/Quad").gameObject;
            _screen1      = transform.Find("Screen/Video").gameObject;
            _screen1Quad1 = transform.Find("Screen/Video/Quad").gameObject;
            if (mirrorReflection)
            {
                _screen1Quad1.layer = 4;
            }
            _screen1Quad1.transform.position   = _screen1Quad1.transform.localPosition + _quad.transform.position;
            _screen1Quad1.transform.rotation   = _quad.transform.rotation;
            _screen1Quad1.transform.localScale = _quad.transform.localScale;
            _screen1Quad2 = transform.Find("Screen/Video/Quad (1)").gameObject;
            _screen1Quad2.SetActive(mirrorReflection);
            if (mirrorReflection)
            {
                _screen1Quad2.layer = 18;
            }
            _screen1Quad2.transform.position   = _quad.transform.position;
            _screen1Quad2.transform.rotation   = _quad.transform.rotation;
            _screen1Quad2.transform.localScale = Vector3.Scale(_quad.transform.localScale, new Vector3(-1f, 1f, 1f));
            _screen2      = transform.Find("Screen/Live").gameObject;
            _screen2Quad1 = transform.Find("Screen/Live/Quad").gameObject;
            if (mirrorReflection)
            {
                _screen2Quad1.layer = 4;
            }
            _screen2Quad1.transform.position   = _screen2Quad1.transform.localPosition + _quad.transform.position;
            _screen2Quad1.transform.rotation   = _quad.transform.rotation;
            _screen2Quad1.transform.localScale = _quad.transform.localScale;
            _screen2Quad2 = transform.Find("Screen/Live/Quad (1)").gameObject;
            _screen2Quad2.SetActive(mirrorReflection);
            if (mirrorReflection)
            {
                _screen2Quad2.layer = 18;
            }
            _screen2Quad2.transform.position   = _quad.transform.position;
            _screen2Quad2.transform.rotation   = _quad.transform.rotation;
            _screen2Quad2.transform.localScale = Vector3.Scale(_quad.transform.localScale, new Vector3(-1f, 1f, 1f));

            _dummyScreen   = _quad.activeSelf;
            _normalColor   = _addressInput.selectionColor;
            _disabledColor = _addressInput.colors.disabledColor;

            OnPowerOff();
        }