protected override void Start()
    {
        base.Start();

        messager                = FindObjectOfType <MessagerBehaviour>();
        TargetFound            += OnTargetFound;
        player                  = AttachPlayer(transform);
        player.VideoErrorEvent += OnVideoError;
        player.VideoReadyEvent += OnVideoReady;
    }
    private static VPlayer AttachPlayer(Transform playerParent)
    {
        GameObject playerObj = GameObject.CreatePrimitive(PrimitiveType.Quad);

        playerObj.name = "StreamPlayer";
        Destroy(playerObj.GetComponent <Collider>());

        Transform playerTransform = playerObj.transform;

        playerTransform.parent        = playerParent;
        playerTransform.localPosition = Vector3.zero;
        playerTransform.localRotation = Quaternion.Euler(90, 180, 0);
        playerTransform.localScale    = Vector3.one;

        VPlayer curPlayer = playerObj.AddComponent <VPlayer>();

        curPlayer.VideoScaleMode     = VPlayer.ScaleMode.None; // others don't work
        curPlayer.EnableLoop         = true;
        curPlayer.DisplayTextMessage = false;
        curPlayer.Storage            = EasyAR.StorageType.Absolute;

        return(curPlayer);
    }