コード例 #1
0
    public MapItem SpawnItem(string text)
    {
        if (GameManager.CurrentCampaign.GetPageById(MapItemDataConverter.GetId(text)) == null)
        {
            return(null);
        }

        items.Add(Instantiate(mapItemPrefab, mapItemsParent).GetComponent <MapItem>());
        int newItemId = items.Count - 1;

        items[newItemId].SetPage(GameManager.Instance.currentCampaign.GetPageById(MapItemDataConverter.GetId(text)));
        items[newItemId].onEndMove = new UnityEngine.Events.UnityEvent();
        items[newItemId].onEndMove.AddListener(delegate { TextChanged(MapItemDataConverter.GetTextFromItem(items[currentHoverItem].page.id, items[currentHoverItem].rectTransform.anchorMin), currentHoverItem + 1); });

        items[newItemId].rectTransform.anchorMin = MapItemDataConverter.GetPosition(text);
        items[newItemId].rectTransform.anchorMax = MapItemDataConverter.GetPosition(text);
        items[newItemId].rectTransform.offsetMin = Vector2.zero;
        items[newItemId].rectTransform.offsetMax = Vector2.zero;
        items[newItemId].rectTransform.sizeDelta = GetCurrentObjectSize();
        items[newItemId].rectTransform.position  = Vector3.right * items[newItemId].rectTransform.position.x + Vector3.up * items[newItemId].rectTransform.position.y + Vector3.forward * 50;

        for (int i = 0; i < items.Count - 1; i++)
        {
            if (items[newItemId].page.links.Contains(items[i].page.id))
            {
                int foundItem = i;
                linkItems.Add(Instantiate(mapLinkPrefab).GetComponent <MapItemLink>().SetTransforms(items[newItemId].gameObject.transform, items[foundItem].gameObject.transform, sizeSlider));
            }
        }

        return(items[newItemId]);
    }