当前位置:网站首页>Fairygui character status Popup
Fairygui character status Popup
2022-07-06 12:42:00 【SQ Liu】
FairyGUI Character status popup
One 、 New packages and components
Two 、 Import material
Click here to download the material
3、 ... and 、 Making the main interface
The main interface is a simple avatar button
1、 The new button
2、 Double click in Button Components , Set a zoom for it , Let it zoom when it is pressed , Then drag the sound material in , It works better .
3、 Drag the button into Main Components
4、 Making pop-up windows
(1) First of all, there should be a container assembly with pop-up windows
(2) Set window background (408×436), take PlayerWindow The size is also set to 408×436.
5、 Make a window frame
(1) New component Windowframe
(2) to Windowframe Add background
You can make the background directly in the framework , So you can delete the following background picture .
(3) New close button
(4) Make frame drag area
The window frame also needs a drag and drop area , That is, when players click on this area , The whole window will move according to the player's mouse .
Rename the drawing to dragArea, This is the official name !!!
Rename the close button , Convenient for later operation .
(5) Add background image , Make it look less monotonous
The window frame is finished !
6、 go back to PlayerWindow, Drag into the window frame
7、 Set graphic placeholder
The player is a 3D object , So we should put 3D The object shines on a UI On , Then take this UI Displayed on our window . Then we need to use Texture, Load the content illuminated by the camera . So there needs to be a placeholder , So we drag a graph here .
8、 The new button
After the characters are loaded , It also needs to have a rotation and other dynamics , So you need to add buttons to make the characters twist .
Four 、Unity Preparatory work
1、 First, import. player.unitypackage Resource Pack
2、 take npc Drag into the scene
We don't want the characters to show , That is, we don't want the characters to have any connection with the game scene interface . So set his position far away , We just want him to make a rendered picture dynamically , This model is not needed .
3、 Create a new camera to render people
Choose Camera Focus
Because only one layer of the game object is rendered , So treat him as UI Layer to render , So you need to add a label .
4、 establish Render Texture
Rename it to PlayerRT
5、 Create a shader
(1) Rename it to PlayerMat
(2) Assign the material to Material
(3) Set its Shader
Later, you only need to load PlayerMat and PlayerRT You can render ! Come here , All the preparations are almost done , Then just put in FairyGUI Make a package of resources in .
5、 ... and 、 Packaging releases
*****FairyGUI Strange phenomenon of release failure *****
At this time, you will be prompted that publishing failed , As shown in the figure above . What's the reason ? This problem has been perplexed for a long time , How did I solve it ? I created a new project again , When importing qtm01d.swf When it comes to resources , Found the problem . Turned out to be qtm01d.swf In the way . So we can take two approaches : One 、 Directly remove the click sound effect ; Two 、 Find another click sound resource by yourself , No material given , Toxic , ha-ha . I am lazy , Delete it directly .
Republish again , Problem solved .
6、 ... and 、Unity It shows that
UI Panel Rename it to PlayerView
7、 ... and 、 Coding control
1、 Create two new scripts
The first is the main script that controls the display PlayerView;
The second is the pop-up script PlayerWindow.
2、 Edit script
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using FairyGUI;
public class PlayerView : MonoBehaviour
{
private GComponent mainUI;
private PlayerWindow playerWindow;
public GameObject player;
void Start()
{
mainUI = GetComponent<UIPanel>().ui;
playerWindow = new PlayerWindow(player);
mainUI.GetChild("n0").onClick.Add(() => {
playerWindow.Show(); });
}
// Update is called once per frame
void Update()
{
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using FairyGUI;
public class PlayerWindow : Window
{
private GameObject player;
public PlayerWindow(GameObject player)
{
this.player = player;
}
protected override void OnInit()
{
this.contentPane = UIPackage.CreateObject("PlayerView", "PlayerWindow").asCom;
GGraph holder = contentPane.GetChild("n2").asGraph;
RenderTexture renderTexture = Resources.Load<RenderTexture>("FGUI/PlayerView/PlayerRT");
Material mat = Resources.Load<Material>("FGUI/PlayerView/PlayerMat");
Image img = new Image();
img.texture = new NTexture(renderTexture);
img.material = mat;
holder.SetNativeObject(img);
}
}
3、 Running effect
But found , Click on the × There is no response , Explain that there are still some problems .
go back to FairyGUI, Return to the window frame PlayerWindow in , Find out ButtonClose Displayed at the top , Because of our UI The display of has strict requirements on this depth . So we put this × The button of is rendered at the bottom .
4、 Re release , There is no problem after running
5、 Rotate the character left and right
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using FairyGUI;
public class PlayerWindow : Window
{
private GameObject player;
public PlayerWindow(GameObject player)
{
this.player = player;
}
protected override void OnInit()
{
this.contentPane = UIPackage.CreateObject("PlayerView", "PlayerWindow").asCom;
GGraph holder = contentPane.GetChild("n2").asGraph;
RenderTexture renderTexture = Resources.Load<RenderTexture>("FGUI/PlayerView/PlayerRT");
Material mat = Resources.Load<Material>("FGUI/PlayerView/PlayerMat");
Image img = new Image();
img.texture = new NTexture(renderTexture);
img.material = mat;
holder.SetNativeObject(img);
this.contentPane.GetChild("n3").onClick.Add(() => {
RotateLeft(); });
this.contentPane.GetChild("n4").onClick.Add(() => {
RotateRight(); });
}
private void RotateLeft()
{
player.transform.Rotate(Vector3.up * 30, Space.World);
}
private void RotateRight()
{
player.transform.Rotate(Vector3.up * (-30), Space.World);
}
}
8、 ... and 、 Final effect
边栏推荐
- JS 函数提升和var变量的声明提升
- [Offer18]删除链表的节点
- [899] ordered queue
- Detailed explanation of truncate usage
- Meanings and differences of PV, UV, IP, VV, CV
- MySQL performance tuning - dirty page refresh
- First use of dosbox
- Particle system for introduction to unity3d Foundation (attribute introduction + case production of flame particle system)
- Types de variables JS et transformations de type communes
- Derivation of logistic regression theory
猜你喜欢
NRF24L01故障排查
FairyGUI簡單背包的制作
FairyGUI摇杆
Problèmes avec MySQL time, fuseau horaire, remplissage automatique 0
Expected value (EV)
NRF24L01 troubleshooting
First use of dosbox
Design and implementation of general interface open platform - (39) simple and crude implementation of API services
Database course design: college educational administration management system (including code)
JS regular expression basic knowledge learning
随机推荐
Knowledge summary of request
Latex learning
idea问题记录
Who says that PT online schema change does not lock the table, or deadlock
SSD technical features
Theoretical derivation of support vector machine
(the first set of course design) 1-4 message passing interface (100 points) (simulation: thread)
Expected value (EV)
Teach you to release a DeNO module hand in hand
By v$rman_ backup_ job_ Oracle "bug" caused by details
JS数组常用方法的分类、理解和运用
What is the maximum length of MySQL varchar field
@Autowired 和 @Resource 的区别
The dolphin scheduler remotely executes shell scripts through the expect command
(一)R语言入门指南——数据分析的第一步
Générateur d'identification distribué basé sur redis
Vscode basic configuration
Page performance optimization of video scene
[leetcode622]设计循环队列
MySQL takes up too much memory solution