コード例 #1
0
ファイル: FieldHandler.cs プロジェクト: garion30/FFBUnity
    // Start is called before the first frame update
    void Start()
    {
        Players = new Dictionary <string, GameObject>();
        Ball    = Instantiate(BallPrefab);
        Ball.transform.SetParent(Field.transform);
        PushbackSquares = new ViewObjectList <PushbackSquare>(s =>
        {
            s.GameObject = Instantiate(ArrowPrefab);
            var animator = s.GameObject.GetComponent <Animator>();
            animator.SetTrigger(s.Direction);
        },
                                                              s =>
        {
            var animator = s.GameObject.GetComponent <Animator>();
            animator.SetTrigger("FadeOut");
        });

        TrackNumbers = new ViewObjectList <TrackNumber>(t =>
        {
            t.GameObject  = Instantiate(TrackNumberPrefab);
            t.LabelObject = t.GameObject.GetComponentInChildren <TMPro.TextMeshProUGUI>();
        },
                                                        t =>
        {
            Destroy(t.GameObject);
        });
    }
コード例 #2
0
 // Start is called before the first frame update
 private void Start()
 {
     BlockDice = new ViewObjectList <BlockDie>(
         die =>
     {
         GameObject obj = Instantiate(BlockDiePrefab);
         var image      = obj.GetComponent <Image>();
         image.sprite   = GetSpriteForRoll(die.Roll);
         obj.transform.SetParent(ContentObject);
         obj.transform.localScale = Vector3.one;
         obj.name = die.Roll.Type.ToString();
         return(obj);
     },
         die =>
     {
         var image = die.GameObject.GetComponentInChildren <Image>();
         var color = image.color;
         if (die.ModelObject.Roll.Type != DieType.None)
         {
             color.a = die.ModelObject.Active ? 1f : 0.5f;
         }
         else
         {
             color.a = 0f;
         }
         image.color = color;
         die.GameObject.transform.localScale = Vector3.one;
         var trn = die.GameObject.GetComponent <RectTransform>();
         if (die.ModelObject.Roll.Type != DieType.None)
         {
             trn.sizeDelta = die.ModelObject.Active ? FullSize : SmallSize;
         }
         else
         {
             trn.sizeDelta = SpacerSize;
         }
     },
         die =>
     {
         Destroy(die.GameObject);
     }
         );
 }
コード例 #3
0
    private async void Start()
    {
        Matches = new ViewObjectList <BrowserRecord>(
            r =>
        {
            GameObject newButton = Instantiate(button);
            newButton.transform.SetParent(pane.transform, false);

            var div = r.Record.division;
            // Find position of new game
            bool foundSection = false;
            int position      = -1;
            for (int i = 0; i < pane.transform.childCount; i++)
            {
                var currentMatch = pane.transform.GetChild(i).GetComponent <GameBrowserEntry>()?.matchDetails;

                if (currentMatch != null)
                {
                    if (!foundSection)
                    {
                        if (string.Equals(currentMatch.division, div))
                        {
                            foundSection = true;
                        }
                    }
                    else
                    {
                        if (!string.Equals(currentMatch.division, div))
                        {
                            position = i;
                            break;
                        }
                    }
                }
                else
                {
                    // This is a division divider
                    if (foundSection)
                    {
                        position = i;
                        break;
                    }
                }
            }
            if (position >= 0)
            {
                newButton.transform.SetSiblingIndex(position);
            }
            else if (!foundSection)
            {
                GameObject divider = Instantiate(this.divider);
                divider.transform.SetParent(pane.transform, false);
                divider.transform.SetSiblingIndex(pane.transform.childCount - 2);
                divider.transform.GetChild(1).gameObject.GetComponent <TMPro.TextMeshProUGUI>().text = div;
            }

            newButton.GetComponent <GameBrowserEntry>().SetMatchDetails(r.Record, Friends);
            return(newButton);
        },
            r =>
        {
            r.GameObject.GetComponent <GameBrowserEntry>().SetMatchDetails(r.ModelObject.Record, Friends);
        },
            r =>
        {
            Destroy(r.GameObject);
        }
            );

        LogManager.Debug("Initialise Game Browser");
        api = FFB.Instance.Api;
        RefreshMatches();
        gameIdInputField.onValidateInput += (text, charIndex, addedChar) =>
        {
            if (addedChar < '0' || addedChar > '9')
            {
                return('\0');
            }
            return(addedChar);
        };

        Friends = await LoadFriends();

        InvokeRepeating("RefreshMatches", 3f, 3f);
    }
コード例 #4
0
ファイル: FieldHandler.cs プロジェクト: rlegendi/FFBUnity
    // Start is called before the first frame update
    private void Start()
    {
        FFB.Instance.OnReport += AddReport;

        FieldRect = Field.GetComponent <RectTransform>();

        foreach (var o in GameObject.FindGameObjectsWithTag("Clone"))
        {
            Destroy(o);
        }

        Ball = Instantiate(BallPrefab);
        Ball.transform.SetParent(Field.transform);

        Players = new PlayersView(this);

        PushbackSquares = new ViewObjectList <PushbackSquare>(s =>
        {
            GameObject obj = Instantiate(ArrowPrefab);
            var animator   = obj.GetComponent <Animator>();
            animator.SetTrigger(s.Direction);
            return(obj);
        },
                                                              s =>
        {
            if (s != null && s.ModelObject.Coordinate != null && s.GameObject != null)
            {
                s.GameObject.transform.SetParent(Field.transform);
                s.GameObject.transform.localPosition = FieldToWorldCoordinates(s.ModelObject.Coordinate.X, s.ModelObject.Coordinate.Y, 10);
            }
        },
                                                              s =>
        {
            var animator = s.GameObject.GetComponent <Animator>();
            animator.SetTrigger("FadeOut");
        });

        TrackNumbers = new ViewObjectList <TrackNumber>(t =>
        {
            GameObject obj = Instantiate(TrackNumberPrefab);
            t.LabelObject  = obj.GetComponentInChildren <TMPro.TextMeshPro>();
            return(obj);
        },
                                                        t =>
        {
            if (t != null && t.ModelObject.Coordinate != null && t.GameObject != null)
            {
                t.GameObject.transform.SetParent(Field.transform);
                t.GameObject.transform.localPosition = FieldToWorldCoordinates(t.ModelObject.Coordinate.X, t.ModelObject.Coordinate.Y, 10);
                t.ModelObject.LabelObject.SetText(t.ModelObject.Number.ToString());
            }
        },
                                                        t =>
        {
            Destroy(t.GameObject);
        });

        var players = FFB.Instance.Model.GetPlayers();

        Players.Refresh(players);

        if (FFB.Instance.Model.TeamHome != null)
        {
            HomeTeamText.text = FFB.Instance.Model.TeamHome.Name.ToUpper();
        }
        if (FFB.Instance.Model.TeamAway != null)
        {
            AwayTeamText.text = FFB.Instance.Model.TeamAway.Name.ToUpper();
        }
    }