【问题标题】:AR Foundation - Control Image Tracked PrefabAR Foundation - 控制图像跟踪预制件
【发布时间】:2020-02-24 10:26:58
【问题描述】:

我正在使用 AR Foundation,我想控制生成的预制件的时间线。
我正在尝试创建一个简单的 AR 应用程序。想象一下,我正在跟踪生成 Tracked Image Prefab 的图像。假设这个预制件是一条龙的模型,在它的时间线上有一些火焰效果。我想在AR Foundation 实例化预制件时间线时控制它。例如,我想通过单击按钮来播放火焰动画。

我可以在预制件上放置一个监听器来触发运行时的时间线吗?请问我该怎么做?我的假设是我需要以某种方式与实例化的预制件进行通信吗?

这是对象,我想在单击按钮后触发其时间线播放。

这是我想控制实例化预制件的时间线的简单代码。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;

public class TimelineController : MonoBehaviour
{
    public PlayableDirector playebleDirector;

    public void Play()
    {
        playebleDirector.Play();
    }

}

【问题讨论】:

    标签: c# unity3d augmented-reality instantiation timeline


    【解决方案1】:

    如果你的问题我答对了,那么你首先需要的是在场景中“流行”的东西,无论龙是否被创造出来,比如控制器。 例如,您的控制器可以负责生成龙。当你的龙生成时,存储该引用 (GameObject dragon = Instantiate(dragonPrefab);)。它也可以有你的按钮参考。

    您可以将龙的行为添加到按钮中,例如:

    button.onClick.AddListener(() => { dragon.dragonSpitFire(); }); //with lambda function
    button.onClick.AddListener(dragon.dragonSpitFire); //without lambda function
    

    在您的方法“dragonSpitFire”中,您可以放置​​您的时间线或动画 Start 方法,例如您的时间线.Play();

    【讨论】:

    • 谢谢 Lotan,你绝对让我走上正轨。我终于用事件和代表解决了它。
    • 不客气,马瑟夫!如果有帮助,请记住将此答案标记为正确(左侧的勾号),以便更多人可以更快地找到它:D
    【解决方案2】:

    我已经用事件和代表解决了这个问题。所有发起的对象都订阅了该事件并触发负责播放时间线的函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-23
      • 1970-01-01
      • 2022-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多