当前位置:网站首页>Fabrication of fairygui simple Backpack
Fabrication of fairygui simple Backpack
2022-07-06 12:38:00 【SQ Liu】
FairyGUI Making of simple Backpack
Results the preview :
One 、 Create a new project
Rename it
Two 、 Make backpack pop-up
1、 Create a new container component for the backpack (BagWindow)
2、 Create a new window frame component (WindowFrame)
3、 Import material resources
4、 stay WindowFrame In the operation
(1) Drag into the background of the backpack
And will n0 Rename it to BG( Backpack background )
(2) New close button (ButtonClose)
(3) Create a new graphic as a placeholder (dragArea—— Drag area )
5、 stay BagWindow In the operation
(1) take WindowFrame Drag in BagWindow, And set its component size
(2) Drag into the list to load game objects
(3) Make a grid in the list —— The new button Item
(4) edit Item
Drag into the background
Drag in Title
Drag loader
6、 stay Main In the operation
(1) Make a picture display button ItemView
(2) Yes ItemView Make some improvements
(3) New backpack pop-up button BagButton
(4) double-click BagButton Button to edit it
7、 go back to BagWindow, Assign a value to
rename , Make some small changes .
3、 ... and 、 Package, export and publish
Four 、Unity It shows that
1、 newly build Unity project
2、 Download from the resource store FairyGUI
When importing after downloading , You need to pay attention to , To put Examples Below Bag Delete the . Because it was not deleted before importing , It leads to some strange phenomena behind .
3、Unity It shows that
5、 ... and 、 Code control
1、 Create two new scripts
One is the backpack pop-up script BagWindow, One is the main script Bag.
2、 Edit script
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、 Running effect
4、 Load the contents of the backpack
(1) Change my BagWindow List names in :itemList, as well as ItemView Inside title, And redistribute
(2) Continue coding to realize the function
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); // Set the initial position where the backpack pop-up window appears
mainUI.GetChild("bagButton").onClick.Add(() => {
bagWindow.Show(); });
}
private void UseItem()
{
playerView.icon = null;
playerView.title = " blank ";
}
}
6、 ... and 、 Final rendering
边栏推荐
- 1081 rational sum (20 points) points add up to total points
- Easy to use shortcut keys in idea
- (课设第一套)1-4 消息传递接口 (100 分)(模拟:线程)
- Arduino gets the length of the array
- ESP8266连接onenet(旧版MQTT方式)
- Esp8266 connects to onenet cloud platform (mqtt) through Arduino IDE
- idea中好用的快捷键
- Vulnhub target: hacknos_ PLAYER V1.1
- Types de variables JS et transformations de type communes
- SSD technical features
猜你喜欢
ES6 grammar summary -- Part 2 (advanced part es6~es11)
idea中导包方法
MySQL占用内存过大解决方案
Office提示您的许可证不是正版弹框解决
CUDA C programming authoritative guide Grossman Chapter 4 global memory
Gravure sans fil Bluetooth sur micro - ordinateur à puce unique
[golang] leetcode intermediate - fill in the next right node pointer of each node & the k-smallest element in the binary search tree
Expected value (EV)
Redis based distributed ID generator
Unity3D,阿里云服务器,平台配置
随机推荐
SVN更新后不出现红色感叹号
MySQL replacement field part content
How to add music playback function to Arduino project
如何给Arduino项目添加音乐播放功能
JS 函数提升和var变量的声明提升
MySQL占用内存过大解决方案
Redis based distributed locks and ultra detailed improvement ideas
Derivation of logistic regression theory
[offer78]合并多个有序链表
JS变量类型以及常用类型转换
The dolphin scheduler remotely executes shell scripts through the expect command
(四)R语言的数据可视化——矩阵图、柱状图、饼图、散点图与线性回归、带状图
JS数组常用方法的分类、理解和运用
1041 be unique (20 points (s)) (hash: find the first number that occurs once)
[Offer18]删除链表的节点
燕山大学校园网自动登录问题解决方案
JUC forkjoin and completable future
2022.2.12 resumption
Design and implementation of general interface open platform - (39) simple and crude implementation of API services
[offer9]用两个栈实现队列