public void OnHandWritingStickeySave()
    {
        DrawableCanvas drawableCanvas = HandWritingStickeyCanvas.GetComponent <DrawableCanvas>();

        m_OnHandWritingStickeyComplete.OnNext(drawableCanvas.GetTexture2D());
        drawableCanvas.ResetCanvas();
    }
Ejemplo n.º 2
0
    private void Awake()
    {
        _boardCanvas = new DrawableCanvas(_resolutionX, _resolutionY);

        var sprite = Sprite.Create(_boardCanvas.Texture, new Rect(0, 0, _resolutionX, _resolutionY), Vector2.zero);

        _boardImage.sprite = sprite;
    }
Ejemplo n.º 3
0
    private DrawableCanvas getPreviewCanvas(NetworkInstanceId player)
    {
        DrawableCanvas canvas;

        if (!_previewCanvases.TryGetValue(player.Value, out canvas))
        {
            canvas = new DrawableCanvas(_resolutionX, _resolutionY);
            _previewCanvases[player.Value] = canvas;

            var sprite = Sprite.Create(canvas.Texture, new Rect(0, 0, _resolutionX, _resolutionY), Vector2.zero);
            getPreviewImage(player).sprite = sprite;
        }

        return(canvas);
    }
        void Update()
        {
            //ペン先の色を変える
            Cone.GetComponent <Renderer>().material.color = PenColor;

            // シングルプレイヤーの場合!photonView.IsMineがTrue判定なので雑にはじく
            if (!photonView.IsMine && !PhotonNetwork.OfflineMode)
            {
                RayCastEnabled   = receivedRayCastEnabled;
                PenColor.r       = receivedPenColorR;
                PenColor.g       = receivedPenColorG;
                PenColor.b       = receivedPenColorB;
                PenColor.a       = receivedPenColorA;
                PenWidth         = receivedPenWidth;
                Erase            = receivedErase;
                targetCanvasId   = receivedTargetCanvasId;
                currentTexCoord  = receivedCurrentTexCoord;
                previousTexCoord = receivedPreviousTexCoord;

                if (RayCastEnabled)
                {
                    var target = PhotonView.Find(targetCanvasId);
                    if (target != null)
                    {
                        var drawObject = target.transform.GetComponent <DrawableCanvas>();
                        if (drawObject != null)
                        {
                            if (!previousTexCoord.Equals(defaultTexCoord))
                            {
                                if (Erase)
                                {
                                    drawObject.Erase(currentTexCoord, previousTexCoord, PenWidth);
                                }
                                else
                                {
                                    drawObject.Draw(currentTexCoord, previousTexCoord, PenWidth, PenColor);
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                // シングルプレイヤーなら無条件で書く
                if (RayCastEnabled || PhotonNetwork.OfflineMode)
                {
                    Vector3 dir = GetCurrentDirection();

                    var        ray = new Ray(this.transform.position + dir * rayOffset, dir);
                    RaycastHit hitInfo;
                    if (Physics.Raycast(ray, out hitInfo, rayDistance))
                    {
                        if (hitInfo.collider != null && hitInfo.collider is MeshCollider)
                        {
                            if (!LocalSyncDraw)
                            {
                                TargetDrawableCanvas = hitInfo.transform.GetComponent <DrawableCanvas>();
                            }
                            if (TargetDrawableCanvas != null)
                            {
                                var target = TargetDrawableCanvas.transform.GetComponent <PhotonView>();
                                targetCanvasId = (target != null) ? target.ViewID : -1;

                                previousTexCoord = currentTexCoord;
                                currentTexCoord  = hitInfo.textureCoord;

                                //Debug.Log("currentTexCoordは" + currentTexCoord);

                                if (!previousTexCoord.Equals(defaultTexCoord))
                                {
                                    if (Erase)
                                    {
                                        TargetDrawableCanvas.Erase(currentTexCoord, previousTexCoord, PenWidth);
                                    }
                                    else
                                    {
                                        TargetDrawableCanvas.Draw(currentTexCoord, previousTexCoord, PenWidth, PenColor);
                                    }

                                    if (!isDrawing)
                                    {
                                        m_OnDrawStart.OnNext(Unit.Default);
                                    }

                                    isDrawing = true;
                                }
                            }
                        }
                        else
                        {
                            Debug.LogWarning("If you want to draw using a RaycastHit, need set MeshCollider for object.");
                        }
                    }
                    else
                    {
                        if (isDrawing)
                        {
                            m_OnDrawEnd.OnNext(Unit.Default);
                            isDrawing = false;
                        }
                        targetCanvasId  = -1;
                        currentTexCoord = defaultTexCoord;
                    }
                }
                else
                {
                    targetCanvasId  = -1;
                    currentTexCoord = defaultTexCoord;
                }
            }
        }
Ejemplo n.º 5
0
 private DrawableCanvasScoreRenderer CreateRenderer(DrawableCanvas canvas)
 {
     return(new DrawableCanvasScoreRenderer(this));
 }
    public void OnHandWritingStickeyReset()
    {
        DrawableCanvas drawableCanvas = HandWritingStickeyCanvas.GetComponent <DrawableCanvas>();

        drawableCanvas.ResetCanvas();
    }
Ejemplo n.º 7
0
 private void Start()
 {
     drawableCanvas          = gameObject.GetComponent <DrawableCanvas>();
     textureSharingComponent = gameObject.GetComponent <TextureSharingComponent>();
     textureSharingComponent.OnReceivedRawTexture.Subscribe(tex2d => SetTexture(tex2d));
 }
 public void SetDrawableCanvas(DrawableCanvas drawableCanvas)
 {
     m_DrawableCanvas = drawableCanvas;
 }