天天看點

背包系統(二)

背包系統(二) 7、拖入兩個物品預設體到格子裡面,并為其添加數量

背包系統(二)

8、修改物品腳本,實作兩個物品可以交換

 //重寫OnDragDropRelease方法

    protected override void OnDragDropRelease(GameObject surface)

    {

        base.OnDragDropRelease(surface);//調用父類的OnDragDropRelease(surface)方法

        if (surface.tag == "Cell")

        {

            this.transform.parent = surface.transform; //把背包放入格子裡面

            this.transform.localPosition = Vector3.zero;//把背包居中

        }

        else if (surface.tag == "Knapsack")

        {

            //第一個背包:拖動的背包

            //第二個背包:将要被交換的背包

            Transform parent = surface.transform.parent;//得到第二個格子Transform對象

            surface.transform.parent = this.transform.parent;//把第二個背包放入第一個格子裡面

            surface.transform.localPosition = Vector3.zero;//把第二個背包居中

            this.transform.parent = parent;//把第一個背包放入第二個格子裡面

            this.transform.localPosition = Vector3.zero;//把第一個背包居中

        }

    }

背包系統(二)
背包系統(二)

9、修改格子腳本,實作按下F鍵,随機産生物品

public GameObject[] cells;//9個格子

    public string[] knapsacksName;//三個物品的名稱

    public GameObject item;//任意一個物品

    void Update() { 

        if(Input.GetKeyDown(KeyCode.F)){//按下F鍵

            PickUp();//調用 PickUp()

        }

    }

    void PickUp() {

        int index = Random.Range(0, knapsacksName.Length);//随機生成0,1,2三個數其中一個

        string name = knapsacksName[index];//得到随機的物品名稱

        for (int i = 0; i < cells.Length; i++)

        {

            if (cells[i].transform.childCount == 0)//目前格子裡面沒有物品

            {

                GameObject go = NGUITools.AddChild(cells[i], item);//把新生成的物品放入格子裡面

                go.GetComponent<UISprite>().spriteName = name;//為新生成的物品添加名稱

                go.transform.localPosition = Vector3.zero;//把物品居中

                break;

            }

        }

}

背包系統(二)

繼續閱讀