FGUI 开宝箱动画demo
时间: 2023-08-03 14:03:39 浏览: 251
以下是一个简单的FGUI开宝箱动画的demo:
1. 首先,在FairyGUI编辑器中,创建一个容器组件,命名为"ChestContainer",并将宝箱和动画元素添加到该容器中。
2. 为动画元素添加Animation组件,并创建一个AnimationClip动画剪辑。在动画剪辑中,添加两个关键帧,一个表示宝箱关闭状态,一个表示宝箱打开状态。在每个关键帧中,设置动画元素的位置和旋转角度,以实现开启和关闭动画。
3. 在代码中,通过以下方式获取容器组件和动画元素的引用:
```csharp
GComponent chestContainer = this.GetChild("ChestContainer").asCom;
GObject chest = chestContainer.GetChild("Chest");
GObject animationElement = chestContainer.GetChild("AnimationElement");
```
4. 调用动画元素的Play方法,触发宝箱的开启和关闭动画:
```csharp
Animation animation = animationElement.asCom.GetTransition("ChestTransition");
animation.Play(onComplete: () =>
{
Debug.Log("Chest animation completed!");
});
```
完整的代码示例:
```csharp
using UnityEngine;
using FairyGUI;
public class ChestDemo : MonoBehaviour
{
private GComponent chestContainer;
private GObject chest;
private GObject animationElement;
void Start()
{
// 获取容器组件和动画元素的引用
chestContainer = this.GetChild("ChestContainer").asCom;
chest = chestContainer.GetChild("Chest");
animationElement = chestContainer.GetChild("AnimationElement");
// 注册点击事件,触发宝箱开启动画
chest.onClick.Add(() =>
{
Animation animation = animationElement.asCom.GetTransition("ChestTransition");
animation.Play(onComplete: () =>
{
Debug.Log("Chest animation completed!");
});
});
}
}
```
这样,当点击宝箱时,就可以触发开启动画了。
阅读全文