Ejemplo n.º 1
0
 private void FindCanvas()
 {
     if (canvas == null)
     {
         canvas = CanvasUtils.FindCanvas();
         canvasRectTransform = canvas.GetComponent <RectTransform>();
     }
 }
Ejemplo n.º 2
0
    // Update is called once per frame
    void LateUpdate()
    {
        Vector3 pos0 = p0.anchoredPosition;
        Vector3 pos1 = p1.anchoredPosition;

        RectTransform drawRectTrans = this.gameObject.GetComponent <RectTransform>();

        CanvasUtils.DrawLine(pos0, pos1, drawRectTrans, thickness);
    }
Ejemplo n.º 3
0
    public RectTransform CreateDebugPoint(RectTransform parent = null)
    {
        if (parent == null)
        {
            parent = CanvasUtils.FindCanvas().GetComponent <RectTransform>();
        }
        RectTransform debugPoint = GameObject.Instantiate(debugPositionIndicatorPrefab, parent);

        debugPoints.Add(debugPoint);
        return(debugPoint);
    }
Ejemplo n.º 4
0
    void Start()
    {
        rectTransform       = GetComponent <RectTransform>();
        singSceneController = FindObjectOfType <SingSceneController>();

        // Get the canvas width.
        Canvas        canvas = CanvasUtils.FindCanvas();
        RectTransform canvasRectTransform = canvas.GetComponent <RectTransform>();

        canvasWidth = canvasRectTransform.rect.width;
    }
Ejemplo n.º 5
0
    public void Update()
    {
        InfoText.text = "";

        if (!PerformMenu.Active ||
            !CanvasUtils.ElementContainsScreenPosition(PerformMenu.GetComponent <RectTransform>(), Input.mousePosition))
        {
            if (Input.GetMouseButton(1))
            {
                PerformMenu.Deactivate();

                if (Input.GetMouseButtonDown(1))
                {
                    lastMouseDragPos = Input.mousePosition;
                }
                else
                {
                    Vector3 diff = (lastMouseDragPos - Input.mousePosition) / 50f;
                    Camera.main.transform.position += diff;
                    lastMouseDragPos = Input.mousePosition;
                }
            }

            if (controllers.ContainsKey(CurrentFlow))
            {
                controllers[CurrentFlow].HandleInput();
            }
        }

        Vector2 pos = BoardUtils.ScreenToBoardPosition(Input.mousePosition);

        if (!BoardUtils.IsInsideBoard(pos))
        {
            return;
        }

        BattleObject obj = GameData.CurrentBattle.Board.GetObjectAt(pos);

        if (obj != null)
        {
            InfoText.text = obj.Description;
        }

        if (Input.GetKeyDown(KeyCode.Escape) && PerformMenu.Active)
        {
            PerformMenu.Deactivate();
        }

        if (controllers.ContainsKey(CurrentFlow))
        {
            controllers[CurrentFlow].Update();
        }
    }
Ejemplo n.º 6
0
    public void CreateShowFpsInstance()
    {
        if (showFpsInstance != null)
        {
            return;
        }

        showFpsInstance = Instantiate(showFpsPrefab, CanvasUtils.FindCanvas().GetComponent <RectTransform>());
        // Move to front
        showFpsInstance.transform.SetAsLastSibling();
        showFpsInstance.transform.position = new Vector3(20, 20, 0);
    }
Ejemplo n.º 7
0
    private void OnGoogleStreetViewSuccess(GoogleStreetViewRequest request)
    {
        string panoID = request.panoID;

        currentRequest = null;
        if (!request.hasErrors)
        {
            if (panoRenderer == null)
            {
                map.control.allowUserControl = false;
                panoRenderer        = SphericalPanoRenderer.CreateSphere(request.texture, radius, segments);
                panoRenderer.shader = Shader.Find("Unlit/Texture");
                panoRenderer.gameObject.AddComponent <KeyboardControl>();
                panoRenderer.gameObject.AddComponent <MouseControl>();
                panoRenderer.gameObject.AddComponent <Limits>();

                if (closeButtonPrefab != null && closeButtonInstance == null)
                {
                    Canvas canvas = CanvasUtils.GetCanvas();
                    if (canvas != null)
                    {
                        closeButtonInstance = Instantiate(closeButtonPrefab);
                        closeButtonInstance.transform.SetParent(canvas.transform, false);
                        closeButtonInstance.GetComponentInChildren <Button>().onClick.AddListener(Close);
                    }
                }
            }
            else
            {
                if (panoRenderer.texture != null)
                {
                    Destroy(panoRenderer.texture);
                }
                panoRenderer.texture = request.texture;
            }
        }
        else
        {
            Debug.Log(request.error);
        }

        if (zoom < 3)
        {
            zoom++;
            currentRequest             = new GoogleStreetViewRequest(googleApiKey, panoID, zoom, panoRenderer.texture as Texture2D);
            currentRequest.OnComplete += OnGoogleStreetViewSuccess;
        }
    }
Ejemplo n.º 8
0
    public void Activate(BattleActor actor, bool movement = true, bool attack = true, bool turn = true)
    {
        Active = true;
        Actor  = actor;

        Vector2 actorPos = BoardUtils.BoardToWorldPosition(actor.Position);

        actorPos.x += 0.5f;

        CanvasUtils.SetElementAtWorldPosition(GetComponent <RectTransform>(), actorPos);
        gameObject.SetActive(false);
        gameObject.SetActive(true);

        MoveButton.interactable   = movement;
        AttackButton.interactable = attack;
        TurnButton.interactable   = turn;
    }
Ejemplo n.º 9
0
    public void StartEditingNoteText()
    {
        if (activeLyricsInputField != null)
        {
            return;
        }

        activeLyricsInputField = Instantiate(lyricsInputFieldPrefab, transform);
        injector.Inject(activeLyricsInputField);
        activeLyricsInputField.Init(this, Note.Text);

        // Set min width of input field
        RectTransform inputFieldRectTransform = activeLyricsInputField.GetComponent <RectTransform>();
        Canvas        canvas      = CanvasUtils.FindCanvas();
        float         canvasWidth = canvas.GetComponent <RectTransform>().rect.width;

        if ((inputFieldRectTransform.rect.width / canvasWidth) < 0.1)
        {
            inputFieldRectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, canvasWidth * 0.1f);
        }
    }
Ejemplo n.º 10
0
    void Start()
    {
        string playerProfilesCsv = SceneData.SelectedPlayerProfiles.Select(it => it.Name).ToCsv();

        Debug.Log($"{playerProfilesCsv} start (or continue) singing of {SongMeta.Title} at {SceneData.PositionInSongInMillis} ms.");

        // Prepare columns and rows for player UI
        PlayerUiArea.SetupPlayerUiGrid(SceneData.SelectedPlayerProfiles.Count, playerUiArea.GetComponent <GridLayoutGroupCellSizer>());

        // Handle players
        List <PlayerProfile> playerProfilesWithoutMic = new List <PlayerProfile>();

        foreach (PlayerProfile playerProfile in SceneData.SelectedPlayerProfiles)
        {
            SceneData.PlayerProfileToMicProfileMap.TryGetValue(playerProfile, out MicProfile micProfile);
            if (micProfile == null)
            {
                playerProfilesWithoutMic.Add(playerProfile);
            }
            PlayerController playerController = CreatePlayerController(playerProfile, micProfile);

            if (SceneData.PlayerProfileToScoreDataMap.TryGetValue(playerProfile, out PlayerScoreControllerData scoreData))
            {
                playerController.PlayerScoreController.ScoreData = scoreData;
            }

            // Handle crown display
            if (SceneData.SelectedPlayerProfiles.Count > 1)
            {
                playerController.PlayerScoreController.NoteScoreEventStream.Subscribe(noteScoreEvent => { RecomputeCrowns(); });
                playerController.PlayerScoreController.SentenceScoreEventStream.Subscribe(sentenceScoreEvent => { RecomputeCrowns(); });
            }
            playerController.PlayerUiController.PlayerCrownDisplayer.ShowCrown(false);
        }

        // Handle dummy singers
        if (Application.isEditor)
        {
            DummySingers = FindObjectsOfType <AbstractDummySinger>().ToList();
            foreach (AbstractDummySinger dummySinger in DummySingers)
            {
                if (dummySinger.playerIndexToSimulate < PlayerControllers.Count)
                {
                    dummySinger.SetPlayerController(PlayerControllers[dummySinger.playerIndexToSimulate]);
                }
                else
                {
                    Debug.LogWarning("DummySinger cannot simulate player with index " + dummySinger.playerIndexToSimulate);
                    dummySinger.gameObject.SetActive(false);
                }
            }
        }

        // Create warning about missing microphones
        string playerNameCsv = string.Join(",", playerProfilesWithoutMic.Select(it => it.Name).ToList());

        if (!playerProfilesWithoutMic.IsNullOrEmpty())
        {
            UiManager.Instance.CreateWarningDialog(
                I18NManager.GetTranslation(R.String.singScene_missingMicrophones_title),
                I18NManager.GetTranslation(R.String.singScene_missingMicrophones_message, "playerNameCsv", playerNameCsv));
        }

        // Associate LyricsDisplayer with one of the (duett) players
        InitLyricsDisplayers();

        //Save information about the song being started into stats
        Statistics stats = StatsManager.Instance.Statistics;

        stats.RecordSongStarted(SongMeta);

        songVideoPlayer.Init(SongMeta, songAudioPlayer);

        StartCoroutine(StartMusicAndVideo());

        // Rebuild whole UI
        LayoutRebuilder.ForceRebuildLayoutImmediate(CanvasUtils.FindCanvas().GetComponent <RectTransform>());
    }
Ejemplo n.º 11
0
    private void OnGoogleStreetViewSuccess(GoogleStreetViewRequest request)
    {
        currentRequest = null;
        if (request.hasErrors)
        {
            Debug.Log(request.error);
            return;
        }
        string panoID = request.panoID;

        if (panoRenderer == null)
        {
            map.control.allowUserControl = false;
            panoRenderer = SphericalPanoRenderer.CreateSphere(request.texture, radius, segments);

            if (useRotation && OnlineMapsCameraOrbit.instance != null)
            {
                panoRenderer.pano.pan = OnlineMapsCameraOrbit.instance.rotation.y;
            }
            else
            {
                panoRenderer.pano.pan = 0;
            }

            panoRenderer.shader = shader != null ? shader : Shader.Find("Unlit/Texture");
            panoRenderer.gameObject.AddComponent <DirectionManager>();
            panoRenderer.gameObject.AddComponent <HotSpotManager>();
            panoRenderer.gameObject.AddComponent <KeyboardControl>();
            panoRenderer.gameObject.AddComponent <MouseControl>();
            panoRenderer.gameObject.AddComponent <Limits>();

            if (closeButtonPrefab != null && closeButtonInstance == null)
            {
                Canvas canvas = CanvasUtils.GetCanvas();
                if (canvas != null)
                {
                    closeButtonInstance = Instantiate(closeButtonPrefab);
                    closeButtonInstance.transform.SetParent(canvas.transform, false);
                    closeButtonInstance.GetComponentInChildren <Button>().onClick.AddListener(Close);
                }
            }

            StartShowTransition();
        }
        else
        {
            if (panoRenderer.texture != null)
            {
                Destroy(panoRenderer.texture);
            }
            panoRenderer.texture = request.texture;
        }

        DirectionManager directionManager = panoRenderer.GetComponent <DirectionManager>();

        if (request.meta != null)
        {
            meta = request.meta;

            float pan = panoRenderer.pano.pan;
            panoRenderer.pano.northPan = meta.northPan;
            panoRenderer.pano.pan      = pan;

            CreateDirections(directionManager);
        }

        if (zoom < panoramaMaxZoom)
        {
            zoom++;
            currentRequest             = new GoogleStreetViewRequest(googleApiKey, panoID, zoom);
            currentRequest.OnComplete += OnGoogleStreetViewSuccess;
        }
    }
Ejemplo n.º 12
0
    // Update is called once per frame
    void Update()
    {
        RectTransform rectTrans = this.gameObject.GetComponent <RectTransform>();

        rectTrans.anchoredPosition = CanvasUtils.WorldToCanvasAnchoredPosition(target.position, canvas, worldViewCam);
    }