コード例 #1
0
    public static PipeFunctionTile Create(string name, VariablePipe.PipeFunction function)
    {
        PipeFunctionTile function_tile = GameObject.Instantiate(Scene.Main.Prefabs.PipeFunctionTile);

        function_tile.Name     = name;
        function_tile.Function = function;

        return(function_tile);
    }
コード例 #2
0
    protected override void Start()
    {
        base.Start();

        if (UnityEditor.EditorApplication.isPlaying)
        {
            foreach (string name in VariablePipe.Functions.Keys)
            {
                Add(PipeFunctionTile.Create(name, VariablePipe.Functions[name]));
            }
        }
    }
コード例 #3
0
    public override void OnEndDrag(PointerEventData eventData)
    {
        PipeFunctionSlot[] pipe_function_slots =
            Scene.Main.UnmaskedUIElements.GetComponentsInChildren <PipeFunctionSlot>();

        if (pipe_function_slots.Length > 0)
        {
            PipeFunctionSlot pipe_function_slot =
                pipe_function_slots.Where(pipe_function_slot_ =>
                                          (pipe_function_slot_.transform as RectTransform).ContainsMouse())
                .FirstOrDefault();

            if (Drawer == null)
            {
                GetComponentInParent <PipeFunctionSlot>().PipeFunctionTile = null;
            }

            if (pipe_function_slot != null)
            {
                if (Drawer != null)
                {
                    PipeFunctionTile copy = Create(Name, Function);

                    Drawer.Add(copy);
                    copy.transform.SetSiblingIndex(transform.GetSiblingIndex());

                    Drawer.Remove(this);
                }

                pipe_function_slot.PipeFunctionTile = this;
            }
            else if (Drawer == null)
            {
                GameObject.Destroy(gameObject);
            }
        }

        base.OnEndDrag(eventData);
    }