Unity手动漫游(移动端)

原创 2016年11月18日 13:40:11

首先说明一下,今天将的手动漫游方式需要借助Unity的手势插件: FingerGestures


具体插件如何使用,请看文章:
http://blog.csdn.net/qq_15267341/article/details/51878844?locationNum=1&fps=1


三步搞定手动漫游:


1 场景中建立一个相机
2 相机上挂一个角色控制器脚本
3 相机上挂如下代码脚本(shouDongManYou.cs)

最后调整相机的参数以确定相机的初始位置,调整角色控制器的Center、Radius、Height


这里写图片描述


这里写图片描述


public class shouDongManYou : MonoBehaviour {
    private float a01;  //a01和a02控制左右旋转
    private float a02;

    private float b01;  //b01和b02控制上下旋转
    private float b02;

    // Use this for initialization
    void Start () {

    }
    void Update()
    {
    }
    public void jieshu() //退出漫游手动漫游时取消事件
    {
        FingerGestures.OnDragMove -= dragMove;
        FingerGestures.OnFingerStationary -= onFingerStationary;
    }
    void OnEnable()
    {
        a01=a02 = transform.localEulerAngles.y;
        b01=b02 = transform.localEulerAngles.x;
        FingerGestures.OnDragMove += dragMove;
        FingerGestures.OnFingerStationary += onFingerStationary;
    }
    // Update is called once per frame
    Vector2 previousPos;
    void dragMove(Vector2 fingerPos, Vector2 delta)
    {
        a01 += delta.x * 0.06f;
        a02 = Mathf.Lerp(a02, a01, Time.deltaTime * 30f);
        b01 += delta.y * 0.5f;
        b02 = Mathf.Lerp(b02, b01, Time.deltaTime * 30f);
        b02 = Mathf.Clamp(b02, -3, 3);
        transform.rotation = Quaternion.Euler(b02, a02, transform.localEulerAngles.z);               

    }

    void onFingerStationary(int fingerIndex, Vector2 fingerPos, float elapsedTime)
    {
        if (elapsedTime>0.5f)
        {
            GetComponent<CharacterController>().SimpleMove(transform.forward);
        }
    }
}

一定要注意墙和地板都要添加碰撞体


特别注意如下:


这里写图片描述



FR:海涛高软(QQ技术交流群:386476712)

Unity各种组件使用的坑

实验结果: 1.调用NavMeshagent.destination设置目标点,如果目标点是不可达的点,那么结果是destination存放了离目标点最近的点。并且也会让寻路者移动到最近点。移动到最近...
  • cyxisgreat
  • cyxisgreat
  • 2016年05月05日 14:56
  • 2438

[Unity3D 版本5.X]实现一个自由漫游的摄像机

我学习Unity3D一小段时间了,第一个制作目标就是实现一个自由漫游的摄像机。 使用WSAD键控制摄像机的上下左右移动,使用鼠标右键控制摄像机的旋转。 这个功能比较简单,代码也一目了然,不做过多解释了...
  • oilcode
  • oilcode
  • 2017年05月29日 20:46
  • 2498

unity3d 室内漫游源码

  • 2017年03月12日 21:07
  • 17.67MB
  • 下载

Unity +HTC VIVE 虚拟现实开发— 移动漫游

Hello 大家好,我是帅气的交换机,这篇文章主要写的是通过手柄控制移动在场景中漫游。 在通过手柄控制移动时,我主要写了两个脚本一个ChildTransform.cs、Move.cs; 1、 Chil...
  • qq_28755939
  • qq_28755939
  • 2016年08月04日 18:45
  • 4996

Unity开发HTC vive 四、传送

手柄会射出一个抛物线,当pad按下的时候,会传送到抛物线和物体交汇处,从而实现远距离移动。 1、导入SDK:SteamVR Plugin和Vive Input Utility 2、删除场...
  • wuyt2008
  • wuyt2008
  • 2017年01月06日 12:03
  • 2206

HTV vive unity里手柄移动实例VR Arc Teleporter

  • 2016年06月14日 10:34
  • 75KB
  • 下载

基于Unity3D的虚拟漫游系统

  • 2013年04月26日 16:52
  • 654KB
  • 下载

Unity漫游项目经验分享

国庆,技术总监介绍了个漫游项目给我,由于公司的解散,没有做过漫游项目的我硬着头皮接下了,国庆在家里呆了不到两天就奔赴南京,在南京呆了八天,项目总算了结,带着微薄的定金和一张白条直接回到杭州。我收获其实...
  • yuanchunfa
  • yuanchunfa
  • 2012年10月28日 13:19
  • 4224

基于Unity3D的虚拟校园漫游系统

  • 2015年12月30日 17:45
  • 1.74MB
  • 下载

Unity中添加组件的几种方法

一、在编辑器上面添加一个组件。这个不用多说。 二、在脚本中利用AddComponent函数添加一个组件,例如: using UnityEngine; using ...
  • qq_17758883
  • qq_17758883
  • 2016年09月15日 14:27
  • 712
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Unity手动漫游(移动端)
举报原因:
原因补充:

(最多只允许输入30个字)