2019-05-14 14:17:30 weixin_42746271 阅读数 58

前言

Unity 技术备忘录 让着相机跟着我的设置好的路径进行漫游

准备工作
需要一个DoTween插件
插件下载地址:
https://download.csdn.net/download/weixin_42746271/11177327

#第一步
首先导入这个DoTween
创建文件夹
在这里插入图片描述
在Script文件夹中创建MainSceneManager.cs和CameraManager.cs两个脚本文件。
MainSceneManager的脚本内容是

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;//DOTween的命名空间

public class MainSceneManager : MonoBehaviour {

public DOTweenPath doTweenPath;
// Use this for initialization
void Start () {
    doTweenPath.DORestart();
}

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

然后把脚本挂载到需要漫游的物体

第二步

找到摄像机 挂载DoTweenPath组件
在这里插入图片描述

 将DOTweenPath组件展开后,下面只介绍较常用的属性:

         Duration:动画时长;

        Ease:这是一个枚举,可以理解为动画播放速率曲线 ;

         Loops:动画循环播放的次数;-1表示一直循环,0表示只播放一次,当该值>1时,检视面板出现

                      LoopType,顾名思义就是指循环类型:

                                 Restart:重新开始,后面的动画循环播放会从起点重新开始; 

                                 Yoyo:来回播放 

                                 Incremental:增加的,后面的path移动动画会在上一次循环的终点的基础上进行播放

         PathType:漫游路径为直线还是曲线;

         ClosePath:漫游路径是否封闭;

 Color:轨迹曲线的颜色;

         Handles Type:手柄类型(指pathWayPoints的类型,选用free比较好调整)

同时在摄像机上挂载脚本CameraManager

在这里插入图片描述
其中这些事坐标点位置,让你的摄像机漫游的目标点的位置
在这里插入图片描述

第三步

在脚本CameraManager里写:

using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraManager : MonoBehaviour {
public static CameraManager Instance;//相机管理
// Use this for initialization
void Start () {
    CameraManager.Instance = this;//在这里初始化
}

// Update is called once per frame
//保证每一帧都会执行
void Update () {
    //使相机始终看向坐标(0,0,0)
    this.transform.DOLookAt(new Vector3(0, 0, 0), 0.0001f);

	}
}

效果

在这里插入图片描述
这个漫游的速度效果什么可以根据自己的需要修改

2016-06-17 13:29:26 U_laoba 阅读数 3191

话不多说,直接开始。。。。。。。。。

1:打开unity,将主摄像机删除掉,找到MojingMain.prefab,添加到场景中

2:创建Sphere。

3:创建材质球,Shader设置为 Mobile/Particles/Alpha Blened,添加全景图

4:搜索IntegrateInputManager.prefab预制体,添加到场景中。

5:创建一个空对象,名字修改为Overlay,为其添加SetOverlay.cs脚本。

6:在MojingMain→MojingVrHead下创建空对象,并将空对象的名字修改为GazePointer。

7:将MojingMain放到Sphere里面。

8:创建EventSystem,添加脚本GazeInputModule.cs,和 Touch Input Module.

9:将GazePointer对象添加到GazeInputModule.cs下

2016-03-30 15:42:05 wuyt2008 阅读数 3931

这个盒子的素材在playmaker的官网上有下载

http://www.hutonggames.com/downloads/01_00_S1_Assets_WPG.zip


开始和上一课一样

把盒子拖到场景,添加状态,事件,按钮动作



这个时候,如果把播放动画的动作添加到按钮事件,会出现下面的情况,运行后,盒子自己打开了,但是状态停在关闭的时候,按钮点击没反应。



这个时候,需要添加新的状态,让动画播放的状态。



完了之后,在动画播放的状态添加FINISHED过渡,这个过渡是系统给的。



把按钮上的播放动画的动作删除,重新连接箭头



播放的状态如下设置



运行预览,这是开始状态



点击按钮以后,播放打开盒子动画的状态



盒子打开完成的状态


2018-05-11 15:19:27 xiaochenXIHUA 阅读数 2407

一、搭建场景场景里面的物体随便弄(导入DoTweenPro插件)
二、给主摄像机添加DoTweenPath组件,然后进行对应的设置

①创建摄像机的移动路径点(即按下Ctrl+Shift)移动鼠标到场景对应位置即可创建一个点,其他的点以此类推创建
②对主摄像机上的DoTweenPath组件进行必要的设置

③调整设置

三、编写控制脚本CameraControl
/***
*	Title:"XXX" 项目
*		主题:XXX
*	Description:
*		功能:XXX
*	Date:2017
*	Version:0.1版本
*	Author:Coffee
*	Modify Recoder:
*/

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;

namespace SimpleUIFrame
{
	public class CameraControl : MonoBehaviour
	{
        private Camera _MainCamera;                                     //主摄像机
        private DOTweenPath _DOTweenPath;                               //DOTweenPath组件


        void Start()
		{
            //获取到主摄像机
            _MainCamera = Camera.main;
            print("主摄像机="+_MainCamera);
            //获取到主摄像机的DOTweenPath组件
            _DOTweenPath = _MainCamera.GetComponent<DOTweenPath>();
          
        }

        /// <summary>
        /// 控制主摄像机的自动移动
        /// </summary>
        public void Doplay_AutoMoveCamera()
        {
            if (_DOTweenPath!=null)
            {
                _DOTweenPath.DOPlay();
            }
        }

        /// <summary>
        /// 控制主摄像机的暂停
        /// </summary>
        public void DoPause_AutoMoveCamera()
        {
            if (_DOTweenPath!=null)
            {
                _DOTweenPath.DOPause();
            }
        }

        /// <summary>
        /// 控制主摄像机的移动与暂停
        /// </summary>
        public void DoPlayOrPause_AutoMoveCamera()
        {
            if (_DOTweenPath != null)
            {
                _DOTweenPath.DOTogglePause();
            }
        }


	}//class_end
}

四、将该脚本添加到场景的_Scripts物体上,然后给对应的按钮指定对应方法
  
  
  
五、运行场景,点击对应的按钮即可响应对应的效果

六、注意:取消主摄像机物体上的DoTweenPath的AutoPlay,则脚本的控制才有效
2019-05-22 16:31:59 jennyhigh 阅读数 1029

功能需求:

使用vive进行虚拟漫游,如下图所示

摄像机从一个点延箭头走到另外的点去

场景中有两个点标记和两个区域标记,分别代表可以用点的形式进行跳转,

也可以在一定区域内进行移动。

步骤1:

导入steamVR插件

步骤2:

创建简单场景,给一个简单的box当做地面

步骤3:

删掉默认摄像机,放入VR摄像机

步骤4:

放入Teleport组件

步骤5:

把点标识放在你想移动到的地方

步骤6:

创建一个Plan在相应位置,添加一个teleportArea脚本,注意plan的位置不能和下面的box靠得太近,不然运行会出错

步骤7:

场景完成后,第一次点击运行会报找不到Input的错,点击确定会弹出一个对话框,

选择Teleport,然后选择生成

步骤8:

再次点击运行,手柄会有变化,然后按住中间的圆饼,

就可以在场景中任意移动到开始设定好的地方了! 完美!؏؏☝ᖗ乛◡乛ᖘ☝؏؏

 

新建:

博文 来自: a937325763
没有更多推荐了,返回首页