ImageTarget识别物体脱离识别案例

本文介绍了在不修改源码的情况下,如何处理ImageTarget识别物体脱离识别的问题。通过理解ImageTargetBehaviour脚本控制模型显示的原理,作者提出在预加载prefab中复制识别物体并关闭该组件以隐藏模型的方法。
摘要由CSDN通过智能技术生成

最近见很多群内的小伙伴都在问这个技术。

我说说我的做法,尽大可能不修改源码的情况下。

首先我们需要理解所谓的识别物体,也就是我们所提供的模型是如何存在与识别图上的。

模型的显示是通过ImageTargetBehaviour这个脚本所控制的,所以我们让这个component隐藏的时候,模型是必然不显示的。

所以这里我是直接在预加载一个prefab来复制当前识别物体来替代识别物体。

然后通过关闭ImageTargetBehaviour这个脚本来隐藏识别物体。


原理不多说,直接上代码

public void  Lock()
    {
  
<span style="white-space:pre">	</span>//num是点击次数
        if (num % 2 == 0)
        {
  
<span style="white-space:pre">	</span>//一个加载函数,模型名称就是识别图的名称
            ReasouceLoda(DefaultTrackableEventHandler.name);
<span style="white-space:pre">	</span>//这个if是找到识别图下的模型,可写可不写
            if (GameObject.Find(DefaultTrackableEventHand
easyAR是一个基于AR技术的开发平台,提供了手势识别的功能。在easyAR中,可以通过手势来触发AR应用中的不同操作,比如旋转、缩放、切换场景等。 要使用easyAR手势识别功能,需要先创建一个AR应用,并且在其中添加手势识别的功能。手势识别可以通过easyAR提供的API来实现,具体步骤如下: 1. 导入easyAR SDK,并在代码中初始化。 ```java public class MainActivity extends AppCompatActivity { private static final String TAG = MainActivity.class.getSimpleName(); private ARVideoView arVideoView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化easyAR EasyAR.initialize(this, "your_key_here", new EasyARCallBack() { @Override public void onCallBack(int code, String msg) { Log.i(TAG, "EasyAR init result: " + code); } }); // 获取ARVideoView对象 arVideoView = findViewById(R.id.ar_video_view); } } ``` 2. 在布局文件中添加ARVideoView控件。 ```xml <com.easyar.Engine> <com.easyar.ARVideoView android:id="@+id/ar_video_view" android:layout_width="match_parent" android:layout_height="match_parent" /> </com.easyar.Engine> ``` 3. 添加手势识别的回调函数,监听手势的触发事件。 ```java // 创建手势识别器 GestureTracker gestureTracker = new GestureTracker(); // 监听手势识别事件 gestureTracker.attach(arVideoView); gestureTracker.setOnGestureListener(new GestureTracker.OnGestureListener() { @Override public void onSingleTap() { // 单击事件 } @Override public void onDoubleTap() { // 双击事件 } @Override public void onLongPress() { // 长按事件 } }); ``` 4. 在AR场景中添加手势识别的目标。 ```java // 创建手势识别目标 ImageTarget target = ImageTarget.createFromImageFile("target.jpg", PathType.Absolute); // 为目标添加手势识别功能 GestureTarget gestureTarget = GestureTarget.createFromTarget(target); gestureTarget.attachTracker(gestureTracker); gestureTarget.setGestureType(GestureType.SingleTap); ``` 以上就是使用easyAR实现手势识别的基本步骤。具体的实现方式还需要根据实际需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值