当前位置:网站首页>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
边栏推荐
- Remember an experience of ECS being blown up by passwords - closing a small black house, changing passwords, and changing ports
- It has been solved by personal practice: MySQL row size too large (> 8126) Changing some columns to TEXT or BLOB or using ROW_ FORMAT
- Custom view puzzle getcolor r.color The color obtained by colorprimary is incorrect
- Latex learning
- Database course design: college educational administration management system (including code)
- Mysqldump error1066 error solution
- MySQL takes up too much memory solution
- ES6 grammar summary -- Part 2 (advanced part es6~es11)
- Game 280 weekly
- (core focus of software engineering review) Chapter V detailed design exercises
猜你喜欢
單片機藍牙無線燒錄
ES6 grammar summary -- Part 2 (advanced part es6~es11)
Expected value (EV)
FairyGUI复选框与进度条的组合使用
Unity scene jump and exit
Problèmes avec MySQL time, fuseau horaire, remplissage automatique 0
Office prompts that your license is not genuine pop-up box solution
idea中导包方法
SVN更新后不出现红色感叹号
(四)R语言的数据可视化——矩阵图、柱状图、饼图、散点图与线性回归、带状图
随机推荐
Fairygui joystick
[offer9] implement queues with two stacks
2022.2.12 resumption
Common properties of location
基于Redis的分布式锁 以及 超详细的改进思路
HCIP Day 12
数据库课程设计:高校教务管理系统(含代码)
PT OSC deadlock analysis
SSD technical features
FairyGUI人物状态弹窗
[Leetcode15]三数之和
Talking about the startup of Oracle Database
如何给Arduino项目添加音乐播放功能
Naive Bayesian theory derivation
First use of dosbox
Conditional probability
Unity3D摄像机,键盘控制前后左右上下移动,鼠标控制旋转、放缩
js题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
C programming exercise
燕山大学校园网自动登录问题解决方案