栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

山东大学增强现实实验三

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

山东大学增强现实实验三

题目

设置场景中的多个标志,通过跟踪这些标志,实现操控虚拟物体的目的。虚拟物体自选,要求:
1)标志物至少有3个(一个识别,一个平移,一个旋转);
2)操控虚拟物体的平移和旋转;
3)文档给出代码及实现思路。

实验步骤 1.制作标志物

步骤和实验二差不多(可以参考文章:关于Unity实现AR功能(一)Vuforia介绍),主要需要修改一下Vuforia Configuration(打开方式:ARCamera→Open Vuforia Configuration)下的一些参数,使得可以同步识别多张图片,设置最大跟踪图片数和物体数为5。

2.制作按钮

我通过设置点击按钮来控制物体的移动。分别在两张识别图上添加button。这里需要注意,把Canvas设置成World Space,因为在该模式下,画布和其他在3D世界中的游戏物体具有相同性质,可以通过设置Rect Transform组件的数值,改变位置、尺寸和旋转角等属性。有利于调节button的位置使其分布在识别图片上。

注意调节Canvas大小不能把width和height缩小,这样得到的button会变得非常模糊。正确的做法应该是保持原来的width和height,缩小button的scale。
我设置的相关参数如下:

3.编写按钮的点击事件脚本

新建一个脚本
代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ClickUp : MonoBehaviour
{
    // 获取待操纵的标志物
    public GameObject g= GameObject.Find("cola");
    // 设置移动速度
    public float speed=3;


    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    // 向上移动
    public void OnMyClick()
    {
        g.transform.Translate(Vector3.forward * speed * Time.deltaTime);
    }

    // 向下移动
    public void OnMyClickDown()
    {
        g.transform.Translate(Vector3.back * speed * Time.deltaTime);
    }

    // 向左移动
    public void OnMyClickLeft()
    {
        g.transform.Translate(Vector3.left * speed * Time.deltaTime);
    }

    // 向右移动
    public void OnMyClickRight()
    {
        g.transform.Translate(Vector3.right * speed * Time.deltaTime);
    }

    // 绕x旋转
    public void rotateX()
    {
        // 一次旋转10度,Space.Self表示以自身坐标系为参考旋转
        g.transform.Rotate(10, 0, 0, Space.Self);
    }

    // 绕y旋转
    public void rotateY()
    {
        g.transform.Rotate(0, 10, 0, Space.Self);
    }

    // 绕z旋转
    public void rotateZ()
    {
        g.transform.Rotate(0,0,10, Space.Self);
    }
}

在button的inspector中点击add component添加该脚本。在button的onclick组件中设置好相关参数如图,把对应的方法赋给对应的button:

完成
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/901124.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号