ImageTargetBaseBehaviour Class¶
Inherits: TargetAbstractBehaviour
Description¶
ImageTargetBaseBehaviour是在AR场景中控制ImageTarget的component。
你需要设置ImageTargetBaseBehaviour为与target相关需要显示的3D内容的父节点。ARCamera与跟踪到的Target之间的相对位置(transform )是由EasyAR控制的。
为了使用ImageTargetBaseBehaviour(让tracker跟踪ImageTargetBaseBehaviour内部的target),你必须先使用图片或json设置(setup)这个component然后将这个ImageTargetBaseBehaviour加载到ImageTrackerBaseBehaviour中。
通常有两种方法可以设置(setup)这个component。一个是设ActiveTargetOnStart为true然后设置一些变量(Name、Path、Size和Storage),加载操作将会在 MonoBehaviour.Start 中被调用。另一个方法是手动调用SetupWith*方法。你也可以在任意时间使用SetupWith*方法重新加载target。
在设置(setup)之后你需要把ImageTargetBaseBehaviour加载进ImageTrackerBaseBehaviour。同样也有两种方法。
Bind 一个 ImageTrackerBehaviour.
ImageTargetBaseBehaviour 会在 SetupWith* 方法被显式或隐式(如果 ActiveTargetOnStart 是true,会在 MonoBehaviour.Start 中加载)的调用之后自动加载进入绑定的 ImageTrackerBaseBehaviour 。
如果 SetupWith* 方法在 Bind 之前被调用,那 ImageTargetBaseBehaviour 将在调用 Bind 的同时被加载进入绑定的 ImageTrackerBaseBehaviour 。
调用 ImageTrackerBaseBehaviour 的 ImageTrackerBaseBehaviour.LoadImageTargetBehaviour 。
这将与调用 Bind 产生同样的效果,但是必需在该调用之前先使用 SetupWith* 对 ImageTargetBaseBehaviour 进行设置。
target被检测到和丢失的事件通知为 TargetAbstractBehaviour.TargetFound / TargetAbstractBehaviour.TargetLost 或 ARCameraBaseBehaviour.TargetFound / ARCameraBaseBehaviour.TargetLost 。
可以通过 ARCameraBaseBehaviour.FrameUpdate 的事件处理函数获得 Frame ,它包含当前相机图像和当前被跟踪到的 TargetInstance 。
Public Fields¶
Public Properties¶
Public Functions¶
Public Events¶
Overwritten MonoBahaviour Functions¶
bool ActiveTargetOnStart¶
是否在 MonoBehaviour.Start 被调用时setup target。
string Name¶
target名字。如果ActiveTargetOnStart为true,set操作应该在 MonoBehaviour.Start 之前调用。这个值将在target setup并加载进入tracker之后更新,可以在事件TargetLoad中获取。
string Path¶
target的路径。如果ActiveTargetOnStart为true,set操作应该在 MonoBehaviour.Start 之前调用。这个值将在target setup并加载进入tracker之后更新,可以在事件TargetLoad中获取。
Vector2 Size¶
target的大小。如果ActiveTargetOnStart为true,set操作应该在 MonoBehaviour.Start 之前调用,并且只有非{0, 0}值会被用来初始化Target的大小。这个值将在target setup并加载进入tracker之后更新,可以在事件TargetLoad中获取。
StorageType Storage¶
target存储位置的类型。 如果ActiveTargetOnStart为true,set操作应该在 MonoBehaviour.Start 之前调用。这个值将在target setup并加载进入tracker之后更新,可以在事件TargetLoad中获取。
ImageTarget Target¶
ImageTarget物体。target的所有属性将在target setup并加载进入tracker之后更新,可以在事件TargetLoad中获取。
List<ImageTrackerBaseBehaviour> Loaders¶
当前加载了这个component的所有loader(ImageTrackerBaseBehaviour)。
void Bind(ImageTrackerBaseBehaviour behaviour)¶
Binds ImageTrackerBaseBehaviour。
如果ImageTrackerBaseBehaviour 被绑定, ImageTargetBaseBehaviour 会在 SetupWith* 方法被显式或隐式(如果 ActiveTargetOnStart 是true,会在 MonoBehaviour.Start 中加载)的调用之后自动加载进入绑定的 ImageTrackerBaseBehaviour , 这种情况下 ImageTrackerBaseBehaviour.LoadImageTargetBehaviour 会被隐式调用。
如果 SetupWith* 方法在 Bind 之前被调用,那 ImageTargetBaseBehaviour 将在调用 Bind 的同时被加载进入绑定的 ImageTrackerBaseBehaviour 。
在 SetupWith* 方法调用之后显式调用 ImageTrackerBaseBehaviour.LoadImageTargetBehaviour 将会产生与调用 Bind 同样的效果。
bool SetupWithImage(string path, StorageType storageType, string targetname, Vector2 size)¶
使用图像配置target。这个方法只会配置target的属性,不会从存储数据中加载 target 。
配置target,使用类型为 storageType 的 path 的图片,并设置target名字为 targetname ,大小为 size 。
storageType应该设成 StorageType.App 或 StorageType.Assets 或 StorageType.Absolute ,表示路径的类型。
关于StorageType的详细描述参见 StorageType 。
component上的Target将会从所有Loader上卸载。如果要使用tracker跟踪这个target,需要重新加载这个component到ImageTrackerBaseBehaviour。
bool SetupWithJsonFile(string path, StorageType storageType, string targetname)¶
使用json文件配置target。这个方法只会配置target的属性,不会从存储数据中加载 target 。
配置target,如果name非空则使用名字为name的target,否则使用json文件中的第一个target。
storageType应该设成 StorageType.App 或 StorageType.Assets 或 StorageType.Absolute ,表示路径的类型。json文件内部的路径应该是绝对路径或相对于json文件的相对路径。
关于StorageType的详细描述参见 StorageType 。
component上的Target将会从所有Loader上卸载。如果要使用tracker跟踪这个target,需要重新加载这个component到ImageTrackerBaseBehaviour。
bool SetupWithJsonString(string json, StorageType storageType, string targetname)¶
使用json字符串配置target。这个方法只会配置target的属性,不会从存储数据中加载 target 。
配置target,如果name非空则加载名字为name的target,否则加载json字符串中的第一个target。
storageType应该设成 StorageType.App 或 StorageType.Assets 或 StorageType.Absolute ,表示路径的类型。json字符串内部的路径应该是绝对路径或相对于storageType所指向的根目录的相对路径。
关于StorageType的详细描述参见 StorageType 。
component上的Target将会从所有Loader上卸载。如果要使用tracker跟踪这个target,需要重新加载这个component到ImageTrackerBaseBehaviour。
bool SetupWithTarget(ImageTarget target)¶
通过云端返回的Target来配置这个component。
component上的Target将会从所有Loader上卸载。如果要使用tracker跟踪这个target,需要重新加载这个component到ImageTrackerBaseBehaviour。
static List<ImageTarget> LoadListFromJsonFile(string path, StorageType storageType)¶
返回在类型为 storageType 的 path中json的文件中指定的target列表。在返回前这些target将使用json文件中的信息配置完毕。
关于storageType和json文件的描述参见Load和 StorageType 。
static List<ImageTarget> LoadListFromJsonString(string json, StorageType storageType)¶
返回在json字符串中指定的target列表。在返回前这些target将使用json字符串中的信息配置完毕。
关于storageType和json文件的描述参见Load和 StorageType 。
event Action<ImageTargetBaseBehaviour, ImageTrackerBaseBehaviour, bool> TargetLoad¶
Target加载结束事件。将在target被加载进tracker后被触发。
ImageTrackerBaseBehaviour.TargetLoad 也会被同时触发。
event Action<ImageTargetBaseBehaviour, ImageTrackerBaseBehaviour, bool> TargetUnload¶
Target卸载结束事件。将在target被从tracker卸载后被触发。