当前位置:网站首页>FairyGUI简单背包的制作

FairyGUI简单背包的制作

2022-07-06 09:18:00 SQ刘

FairyGUI简单背包的制作

效果预览:
在这里插入图片描述

一、创建新项目

在这里插入图片描述
重命名一下
在这里插入图片描述

二、制作背包弹窗

1、新建背包的容器组件(BagWindow)

在这里插入图片描述
在这里插入图片描述

2、新建窗口框架组件(WindowFrame)

在这里插入图片描述

3、导入素材资源

点击此处下载获取

4、在WindowFrame中操作

(1)拖入背包的背景

在这里插入图片描述
并将n0重命名为BG(即背包背景)

(2)新建关闭按钮(ButtonClose)

在这里插入图片描述
在这里插入图片描述

(3)新建图形作为一个占位(dragArea——拖拽区域)

在这里插入图片描述

5、在BagWindow中操作

(1)将WindowFrame拖入BagWindow,并设置其组件大小

在这里插入图片描述

(2)拖入列表承载游戏物体

在这里插入图片描述

(3)在列表中制作格子——新建按钮Item

在这里插入图片描述

(4)编辑Item

拖入背景图
在这里插入图片描述
拖入Title
在这里插入图片描述
在这里插入图片描述
拖入装载器
在这里插入图片描述

6、在Main中操作

(1)制作图片显示按钮ItemView

在这里插入图片描述

(2)对ItemView做一些完善

在这里插入图片描述

(3)新建背包弹窗按钮BagButton

在这里插入图片描述

(4)双击BagButton按钮对它进行编辑

在这里插入图片描述

7、回到BagWindow,对其赋值

在这里插入图片描述
在这里插入图片描述
重命名,做一些小小的更改。
在这里插入图片描述

三、打包导出发布

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、Unity中显示

1、新建Unity项目

在这里插入图片描述

2、下载资源商店里的FairyGUI

下载后导入时,需要注意一下,要把Examples下面的Bag删除掉。因为之前导入的时候就是没有删除,导致后面出现一些奇奇怪怪的现象。

在这里插入图片描述

3、Unity中显示

在这里插入图片描述

五、代码控制

1、新建两个脚本

一个是背包弹窗脚本BagWindow,一个是主要脚本Bag。

在这里插入图片描述

2、编辑脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using FairyGUI;

public class BagWindow : Window
{
    
    public  BagWindow()
    {
    

    }
    
    protected override void OnInit()
    {
    
        this.contentPane = UIPackage.CreateObject("Bag", "BagWindow").asCom;
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using FairyGUI;

public class Bag : MonoBehaviour
{
    
    private GComponent mainUI;
    private GButton playerView;
    private BagWindow bagWindow;
    void Start()
    {
    
        mainUI = GetComponent<UIPanel>().ui;
        playerView = mainUI.GetChild("playerView").asButton;
        playerView.onClick.Add(UseItem);
        bagWindow = new BagWindow();
        mainUI.GetChild("bagButton").onClick.Add(() => {
     bagWindow.Show(); });
    }

    // Update is called once per frame
    void Update()
    {
    
        
    }

    private void UseItem()
    {
    

    }
}

3、运行效果

在这里插入图片描述

4、加载背包里的内容

(1)更改一下BagWindow里的列表名字:itemList,以及ItemView里的title,并重新发布

在这里插入图片描述
在这里插入图片描述

(2)继续编码实现功能
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using FairyGUI;

public class BagWindow : Window
{
    
    private GList list;
    private GButton playerView;
    public BagWindow(GButton targetButton)
    {
    
        playerView = targetButton;
    }
    
    protected override void OnInit()
    {
    
        this.contentPane = UIPackage.CreateObject("Bag", "BagWindow").asCom;
        list = this.contentPane.GetChild("itemList").asList;
        list.itemRenderer = RenderListItem;
        list.numItems = 20;
        for (int i = 0; i < list.numItems - 10; i++) 
        {
    
            GButton button = list.GetChildAt(i).asButton;
            button.onClick.Add(() => {
     ClickItem(button); });
        }
    }

    private void RenderListItem(int index, GObject obj)
    {
    
        GButton button = obj.asButton;
        button.icon = UIPackage.GetItemURL("Bag", "i" + index);
        button.title = index.ToString();
    }

    private void ClickItem(GButton button)
    {
    
        playerView.title = button.title;
        playerView.icon = button.icon;
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using FairyGUI;

public class Bag : MonoBehaviour
{
    
    private GComponent mainUI;
    private GButton playerView;
    private BagWindow bagWindow;
    
    void Start()
    {
    
        mainUI = GetComponent<UIPanel>().ui;
        playerView = mainUI.GetChild("playerView").asButton;
        playerView.onClick.Add(UseItem);
        bagWindow = new BagWindow(playerView);
        bagWindow.SetXY(121, 63);  //设置背包弹窗出现的初始位置
        mainUI.GetChild("bagButton").onClick.Add(() => {
     bagWindow.Show(); });
    }

    private void UseItem()
    {
    
        playerView.icon = null;
        playerView.title = "空白";
    }
}

六、最终效果图

在这里插入图片描述
在这里插入图片描述

原网站

版权声明
本文为[SQ刘]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_46649692/article/details/117184902