[FairyGUI][Unity]3D物体生成在FGUI上

该博客介绍了如何在Unity3D中通过FGUI的contentPlane对象加载资源,利用prefab实例化GameObject并创建GoWrapper,以便于设置到Graph节点上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

...
        UnityEngine.Object prefab = Resources.Load("effect");
        GameObject effect = (GameObject)GameObject.Instantiate(prefab);
        GoWrapper gw = new GoWrapper(effect);
        contentPlane.GetChild("n1").asGraph.SetNativeObject(gw);
...

contentPlane是FGUI的Plane物体

### 使用 FGUI DoTween 实现抖动效果 在 Unity 中结合 FairyGUI (FGUI) DOTween 插件可以创建平滑且可控的 UI 抖动效果。下面是一个详细的实现方案: #### 创建并配置项目环境 确保已经安装了 FairyGUI 编辑器扩展以及 DG.Tweening 资源包。 #### 准备工作 1. 将目标 FGUISprite 或其他类型的显示对象准备好,比如一个小手套图标。 2. 添加 `DOTween` 的命名空间到脚本文件顶部以便后续调用其功能函数: ```csharp using DG.Tweening; ``` #### 编写 C# 脚本来控制抖动行为 编写一个简单的 MonoBehaviour 类用于驱动抖动逻辑,并将其挂载至包含上述准备好的显示对象的游戏物体上: ```csharp public class IconJitter : MonoBehaviour { private GComponent _icon; // 假设这是一个FairyGUI组件 void Start() { _icon = GetComponent<GComponent>(); ApplyJitterEffect(); } public void ApplyJitterEffect(){ Sequence seq = DOTween.Sequence(); float duration = 0.15f; // 单次偏移持续时间 int iterations = -1; // 设置为无限循环 while(true){ Vector2 offset = Random.insideUnitCircle * 8; seq.Append(_icon.transform.DOLocalMove(offset, duration)) .Append(_icon.transform.DOLocalMove(Vector2.zero, duration)); if(iterations != -1 && --iterations <= 0) break; seq.SetLoops(-1); // 循环播放序列直到停止 } } } ``` 此代码片段定义了一个不断重复执行的位置变化过程[^1],每次都会随机生成一个新的二维向量作为位移方向与幅度,从而形成自然的抖动感。通过调整参数如 `duration`, 可以改变抖动的速度;而修改乘数因子(此处为8),则能影响最大偏离距离。 注意:由于 FairyGUI 组件实际位于 NGUI 下的空间坐标系内,因此这里采用的是局部变换(`DOLocalMove`)而非全局位置操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值