AR如何动态加载模型资源并且将模型资源赋予某一个ImageTarget
2016-07-07 10:47
316 查看
根据跟踪状态实现相应功能
接下来是脚本
public class MyPrefabInstantiator : MonoBehaviour, ITrackableEventHandler
{
private TrackableBehaviour mTrackableBehaviour;
public Transform myModelPrefab;
// Use this for initialization
void Start ()
{
mTrackableBehaviour = GetComponent();
if (mTrackableBehaviour)
{
mTrackableBehaviour.RegisterTrackableEventHandler(this);
}
}
public void onTrackableStateChanged(
TrackableBehaviour.Status previousStatus,
TrackableBehaviour.Status newStatus)
{
if (newStatus == TrackableBehaviour.Status.DETECTED ||
newStatus == TrackableBehaviour.Status.TRACKED ||
newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
{
onTrackingFound();
}
}
private void onTrackingFound()
{
if (myModelPrefab != null)
{
Transform myModelTrf = GameObject.Instantiate(myModelPrefab) as Transform;
myModelTrf.parent = mTrackableBehaviour.transform;
myModelTrf.localPosition = new Vector3(0f, 0f, 0f);
myModelTrf.localRotation = Quaternion.identity;
myModelTrf.localScale = new Vector3(0.0005f, 0.0005f, 0.0005f);
myModelTrf.gameObject.active = true;
}
}
}
大致上是这个样子 具体根据需求改动。
TrackableBehaviour.Status.DETECTED//检测到
TrackableBehaviour.Status.EXTENDED_TRACKED//延伸跟踪
TrackableBehaviour.Status.NOT_FOUND//未找到
TrackableBehaviour.Status.TRACKED//跟踪中
TrackableBehaviour.Status.UNDEFINED//未定义的
TrackableBehaviour.Status.UNKNOWN//未知的
接下来是脚本
public class MyPrefabInstantiator : MonoBehaviour, ITrackableEventHandler
{
private TrackableBehaviour mTrackableBehaviour;
public Transform myModelPrefab;
// Use this for initialization
void Start ()
{
mTrackableBehaviour = GetComponent();
if (mTrackableBehaviour)
{
mTrackableBehaviour.RegisterTrackableEventHandler(this);
}
}
public void onTrackableStateChanged(
TrackableBehaviour.Status previousStatus,
TrackableBehaviour.Status newStatus)
{
if (newStatus == TrackableBehaviour.Status.DETECTED ||
newStatus == TrackableBehaviour.Status.TRACKED ||
newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
{
onTrackingFound();
}
}
private void onTrackingFound()
{
if (myModelPrefab != null)
{
Transform myModelTrf = GameObject.Instantiate(myModelPrefab) as Transform;
myModelTrf.parent = mTrackableBehaviour.transform;
myModelTrf.localPosition = new Vector3(0f, 0f, 0f);
myModelTrf.localRotation = Quaternion.identity;
myModelTrf.localScale = new Vector3(0.0005f, 0.0005f, 0.0005f);
myModelTrf.gameObject.active = true;
}
}
}
大致上是这个样子 具体根据需求改动。
相关文章推荐
- Fiddler 实现手机的抓包
- centos下安装ZooKeeper
- hdu 5054
- Entity Framework Tutorial Basics(34):Table-Valued Function
- LeetCode—hasPathSum
- storyboard scrollview collectionview 离顶部差64个像素
- 获得指定文件夹下的子文件目录及子文件MD5值
- ECshop--数据库模块细究
- cross-validation:从 holdout validation 到 k-fold validation
- Gradle终端命令给App打包
- SQL中Left Join 与Right Join 与 Inner Join 与 Full Join的区别
- Android性能优化
- Android Material Design系列之Palette
- 腾讯云cos对象存储服务文件上传api就是一个大坑
- Python下HttpHTTPClient和AsyncHTTPClient
- linux命令(13) 删除指定文件夹下后缀名相同的文件
- iOS 设备信息
- JSON.parse和JSON.stringify
- 使用.NET Framework Client Profile 导致的引用失效
- QTP 中实现对象高亮