TargetAbstractBehaviour Class¶
Description¶
TargetAbstractBehaviour 是所有 TargetBaseBehaviours 的基类。
Public Properties¶
bool GameObjectActiveControl
Public Events¶
event Action<TargetAbstractBehaviour> TargetFound
event Action<TargetAbstractBehaviour> TargetLost
Overwritten MonoBahaviour Functions¶
protected virtual void Start()
bool GameObjectActiveControl¶
是否使用内置的 GameObject active 控制,如果使用,target 何时显示/隐藏将由内部行为决定。
GameObjectActiveControl 的默认行为如下,
protected virtual void Start()
{
if (gameObjectActiveControl)
gameObject.SetActive(false);
}
internal void OnTargetFound()
{
if (gameObjectActiveControl)
gameObject.SetActive(true);
}
internal void OnTargetLost()
{
if (gameObjectActiveControl)
gameObject.SetActive(false);
}
这是内部代码的一部分,它仅用来显示 EasyAR SDK 在 GameObjectActiveControl 开启状态下做了什么,复制这段代码到你的代码中并不会产生任何作用。如果你需要处理更加复杂的情况,可以按照下面的描述进行。
所以如果你关闭了 GameObjectActiveControl,可以在脚本中实现你所需要的改变,比如更自由的控制何时显示/隐藏物体,或完成“脱卡”所需的功能。你需要做的只是重写 Start 并实现 OnTargetFound/OnTargetLost 的事件处理。更具体一些,你可以参考如下代码在关闭 GameObjectActiveControl 后实现与默认行为相同的功能,这与 EasyAR SDK 1.x 版本中的实现相当类似,
public class EasyImageTargetBehaviour : ImageTargetBehaviour
{
protected override void Awake()
{
base.Awake();
GameObjectActiveControl = false;
TargetFound += OnTargetFound;
TargetLost += OnTargetLost;
}
protected override void Start()
{
base.Start();
gameObject.SetActive(false);
}
void OnTargetFound(TargetAbstractBehaviour behaviour)
{
gameObject.SetActive(true);
}
void OnTargetLost(TargetAbstractBehaviour behaviour)
{
gameObject.SetActive(false);
}
}
event Action<TargetAbstractBehaviour> TargetFound¶
Target 找到事件。在target在场景中被找到的时候触发。
event Action<TargetAbstractBehaviour> TargetLost¶
Target 丢失事件。在target从场景中丢失的时候触发。