Skip to main content
  »

2017年04月23日 09:04:011357640AlbertLee

第一部分:媒介

本教程去教人人实现视+ APP 中非常受欢迎的一个案例,本身别的到场了现在AR APP 中非常盛行的几个功用。教程实现

教程目次:上部:重要实现手指能够挪动AR模子到适宜的位置,双手能够放大模子,点击模子播放动画实现交互。

中部:重要实现点击屏幕 AR模子挪动到指定位置。

下部:重要实现截屏保存出色霎时并分享到相干交际平台。

第二局部:预览

视+ demo

用EasyAR SDK开辟 视+APP 结果(上) 资本教程 第1张


第三局部:开辟情况预备 -澳门新葡京4811

相干资本:怪物模子:链接:https://pan.baidu.com/s/1nv165mD暗码: s8s6

下载EasyAR SDK,搭建EasyAR 开辟的最根基情况。

ok,接下来我们删除unity原有的Camera,把EasyAR 的摄像机拖入到面板中。

用EasyAR SDK开辟 视+APP 结果(上) 资本教程 第2张

 

接着把导入的怪物模子拖入面板中(注重:我们这里并没有用到Imagetarget,由于不需要辨认功用,人人能够脑洞大开,去为模子展示增添个缓冲显现结果,正在这里我便不实现了,重要把AR 挪动端的中心常识给人人分享一下)

用EasyAR SDK开辟 视+APP 结果(上) 资本教程 第3张

 

第四局部:修正相干参数

先修正AR相机的角度,使其X值扭转270度

澳门新葡京4811

 

接下来使怪物Y值扭转180度,并放大2倍,修正默许动画(也能够不修正,只不过使的看起来结果更冷艳)。

用EasyAR SDK开辟 视+APP 结果(上) 资本教程 第5张

 

给怪物增加BoxCollider,并勾选Trigger

第五局部:实现点击怪物播放动画实现交互

起首给物体再加一个Animation,凭据你自己的喜欢增加

用EasyAR SDK开辟 视+APP 结果(上) 资本教程 第6张

 

结下去新建一段代码实现动画交互,代码非常简朴

using UnityEngine;using System.Collections; public class Player : MonoBehaviour {        public Animation anim;        void Start()        {                anim = GetComponent();

}

void Update()

{

if (!anim.isPlaying) {

anim.Play ("2HitCombo");

}

}

void OnMouseDown()

{

anim.Play ("jumpAttack_RM");

}

}

第六局部:实现手指拖动模子到任何位置

增加以下代码,重要是unity Input 挪动端的屏幕操纵

正在Update()中增加:起首界说一个变量Speed

if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved)

{

Vector3 touchDeltaPosition = Input.GetTouch(0).deltaPosition;

transform.Translate(-touchDeltaPosition.x * speed, touchDeltaPosition.y * speed, 0);

}

第七局部:实现双手缩放模子

using UnityEngine;

using System.Collections;

public class SelfRotate1 : MonoBehaviour {

private Touch oldTouch1;  //前次触摸点1(手指1)

private Touch oldTouch2;  //前次触摸点2(手指2)

void Start()

{

}

void Update () {

//没有触摸

if ( Input.touchCount <= 0 ){

return;

}

//多点触摸, 放大缩小

Touch newTouch1 = Input.GetTouch (0);

Touch newTouch2 = Input.GetTouch (1);

//第2点刚开始打仗屏幕, 只纪录,不做处置惩罚

if( newTouch2.phase == TouchPhase.Began ){

oldTouch2 = newTouch2;

oldTouch1 = newTouch1;

return;

}

//盘算老的两点间隔和新的两点间距离,变概略放大模子,变小要缩放模子

float oldDistance = Vector2.Distance(oldTouch1.position, oldTouch2.position);

float newDistance = Vector2.Distance(newTouch1.position, newTouch2.position);

//两个间隔之差,为正示意放大手势, 为背示意缩小手势

float offset = newDistance - oldDistance;

//放大因子, 一个像素按 0.01倍来算(100可调整)

float scaleFactor = offset / 100f;

Vector3 localScale = transform.localScale;

Vector3 scale = new Vector3(localScale.x + scaleFactor,

localScale.y + scaleFactor,

localScale.z + scaleFactor);

//最小缩放到 0.3 倍

if (scale.x > 0.3f && scale.y > 0.3f && scale.z > 0.3f) {

transform.localScale = scale;

}

//记着最新的触摸点,下次运用

oldTouch1 = newTouch1;

oldTouch2 = newTouch2;

}

 转自微旌旗灯号AR酱(ARchan_TT)

}

推荐:

上一篇:

下一篇:

相干推荐

批评列表久无批评
宣布批评