Vuforia 收藏本版 已有9人收藏 +发表新主题
查看: 24978|回复: 0
打印 上一主题 下一主题

[分享] 如何通过编程改变目标大小

[复制链接]

[分享] 如何通过编程改变目标大小

我要做儿童图书 发表于 2016-1-15 09:34:05 浏览:  24978 回复:  0 只看该作者 复制链接

如果你想改变你的形象目标的大小在运行时(通过脚本代码编程)

并且希望Vuforia考虑到新的大小和改变跟踪“目标距离”相应地,

你应该:

  • 使用 ImageTarget.SetSize(Vector2 new_size)API
  • 停用 改变大小之前的数据集
  • 重新 改变大小后的数据集
  • https://developer.vuforia.com/resources/api/unity/interface_image_target)

    [size=13.3333px]为了验证这一点,你可以使用这个简单的代码(例如,通过将其连接到您的团结场景中的任何空游戏对象):

    1. public class TargetInfo : MonoBehaviour
    2. {
    3.   void OnGUI()
    4.   {
    5.     StateManager sm = TrackerManager.Instance.GetStateManager();
    6.     if (GUI.Button (new Rect(50,50,200,40), "Size Up"))
    7.     {
    8.       ImageTracker tracker = TrackerManager.Instance.GetTracker<ImageTracker>();
    9.       foreach (DataSet ds in tracker.GetActiveDataSets())
    10.       {
    11.         // Deactivate Dataset before chaging the target size
    12.         tracker.DeactivateDataSet(ds);
    13.         foreach (Trackable trackable in ds.GetTrackables())
    14.         {
    15.           if (trackable is ImageTarget) {
    16.             ImageTarget it = trackable as ImageTarget;
    17.             Vector2 old_size = it.GetSize();
    18.             Vector2 new_size = new Vector2(1.5f*old_size.x, 1.5f*old_size.y);
    19.             it.SetSize(new_size);
    20.         }
    21.       }
    22.       // Reactivate dataset
    23.       tracker.ActivateDataSet(ds);
    24.     }
    25.    }

    26.    foreach (TrackableBehaviour tb in sm.GetActiveTrackableBehaviours())
    27.    {
    28.      if (tb is ImageTargetBehaviour)
    29.      {
    30.        ImageTargetBehaviour itb = tb as ImageTargetBehaviour;
    31.        float dist2cam = (itb.transform.position - Camera.main.transform.position).magnitude;
    32.        ImageTarget it = itb.Trackable as ImageTarget;
    33.        Vector2 size = it.GetSize();
    34.        GUI.Box (new Rect(50,100,300,40), it.Name + " - " + size.ToString() +
    35.              "\nDistance to camera: " + dist2cam);
    36.       }
    37.     }
    38.   }
    39. }
    复制代码


分享至:
| 人收藏
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2013-2017 ARinChina-增强现实中国技术论坛   All Rights Reserved.