在做漫游的时候,如果你是使用的第一人称,看比你视野高或者低的物体时,你需要看清物体贴图的细节,比如说你要看清上面写的小字是什么,仰视或者俯视,由于距离的限制很难能够到达清晰的效果,如果平视就需要改变视野的高度,在这里就简单探讨一下如何来改变第一人称视野的高度问题。

在Unity里第一人物呈现在场景里就是这么一个绿柱,绿色部分代表人物高度,默认值是2,高度增加绿柱随之增长。绿柱中间部分灰色的胶囊体为摄像机所在位置,默认位置为中间位置,既center.y=0,他放射出的锥形白色细线就为人物视野范围。调整人物视野高度实际就是调节摄像机在Y轴的高度。
摄像机高度在第一人称的场景中是由人物高度height和摄像机相对人物高度的位移center.y的值来决定的。

因为重力原因,在运行场景时,人物高度呈现的绿色柱体是落地的,人物中transform.poition.y的y轴坐标只代表人物的初始位置,与运行后人物落地的坐标值是不一致的,所以在程序中单纯更改坐标y轴的值是改变不了任务视野高度的。另外,如果在运行场景中人物的y轴的坐标值不变的情况下,光更改人物高度height的值,有可能会捅破天,达到场景的上限值尤其是在一个房间里的场景表现的特为明显,单纯更改center.y的值有可能会直接捅破地,超出地面的下限值,这两种情况都可能导致人物掉出场景。要想更改视野高度只能几个值同时改变。
首先我们建立第一人物视野。先倒入第一人物,在project里点击右键导入character controller,然后再在这个选项中找到first person controller将它拖到hierarchy中,将第一人物拖到场景中调整人物位置,这样第一人物就建立好了。

接下来我们进行第二步,调整高度。
private var controller:CharacterController=null; //建立角色对象
private var moveSpeed:float=0.4f;  //上下移动步幅
private var cameraY:float=14.0f;   //初始化人物高度

这里补充说一句,最好将摄像机位置放在绿柱的最上方,相当于人头在身体的上方一样,这里我把center中y轴的值设为了-4,负值代表向绿柱的上方移动,具体的值你要在场景中观察,以人物高度来定,人物高度不同,这个值也是不同的。
private var pos:Vector3;  //角色坐标
function Start () {controller=GetComponent(CharacterController);
   
}

function Update () {

controller.height=cameraY;
//按下Q键升高视野高度
  if(Input.GetKeyDown(KeyCode.Q))
  {
  if(controller.height<24)  //规定一个升高的上限值
  {
      cameraY=cameraY+moveSpeed;
    controller.height=cameraY;
    controller.center.y=controller.center.y-0.2f;
    //升高角色y轴坐标值,防止因参数改变人物身体捅破地
   controller.transform.position=new Vector3(controller.transform.position.x,controller.transform.position.y+(moveSpeed*0.8f),controller.transform.position.z);
   }
  }
  //按下E键降低视野高度

if(Input.GetKeyDown(KeyCode.E))
  {
     if(controller.height>8)   //规定一个下降的下限值
  {
    cameraY=cameraY-moveSpeed;
    controller.height=cameraY;
    controller.center.y=controller.center.y+0.2f;
    
   controller.transform.position=new Vector3(controller.transform.position.x,controller.transform.position.y+(moveSpeed*0.8f),controller.transform.position.z);
     }
  }

pos=controller.transform.position;
  
  
}

Unity之升高人物视野相关推荐

  1. unity学习———2D人物的移动

    unity学习---2D人物的移动 代码如下 using System.Collections; using System.Collections.Generic; using UnityEngine ...

  2. [Unity]摄像机动态人物头像amp;截图amp;TargetTexture问题

    在实现动态人物头像 的时候(相关文章1),同时 实现 截屏 功能,会出现 实现截屏的功能,主要是 相关文章2 的内容 private Texture2D CaptureScreen(Camera ca ...

  3. Unity 避免在人物动画上使用关键帧

    有时候人物触发事件需要对人物的动画做出调整,比如我想在人物进入下一关时实现旋转变小就像这样 但是我发现我添加了这个动画以后,我的人物移动没法改朝向了. 原来是在添加关键帧的时,Unity会将你记录更改 ...

  4. [Unity动画]给人物模型添加简单的动画

    给unity人物模型添加动画,首先你得有个模型,在预制体中,有导入设置,重点是Rig设置.第一个选项是动画的类型,因为导入的是人物模型,所以应该选择人形:第二个是人物骨骼,这里已经设好了:第三个选项是 ...

  5. Unity | Dash 制作人物的三维冲刺效果

    在学习Unity的人物控制中,想到前两年玩的 空洞骑士 中的冲刺效果,想自己实现一遍 参考了以下视频中的2D冲刺的制作方式,做了3D的冲刺效果 HOW TO MAKE A DASH MOVE IN U ...

  6. Unity杂谈:敌人视野感知的实现

    文章写于2016-1-31,后有修改. 本文为本人原创,转载请注明. 以下为正文 -------------------------------------------------- 游戏AI常常分为 ...

  7. Unity简易实现人物换装功能

    人物换装是动作类游戏必不可少的一个功能,本篇就介绍一个简易的换装功能,如要换装,人物身体肯定会拆分成几个部分,如头部,武器,身体等,每个部分都有一个SkinnedMeshRenderer组件,这个组件 ...

  8. unity开发之游戏视野剔除显示FieldOfViewRenderer

    游戏视野剔除显示FieldOfViewRenderer 中文 简介 主要功能 图片预览 部分代码 图形绘制器 DrawHelper 基础扇形类 定义shader美观优化 使用步骤: 下载链接 更新: ...

  9. 解决 unity 2d 中人物碰撞后抖动旋转问题

    碰撞后抖动问题的解决: 因为人物添加了Box Collider 2D 和刚体,因此当碰撞后会模拟实际的运动情况,和其它碰撞体碰撞后会发生抖动: 解决方法: 通过刚体控制物体的运动和位置,而不是通过 t ...

最新文章

  1. 【随记】动态调用web服务
  2. VMware大会宋家瑜言虚拟化2015年方至巅峰
  3. openlayers3 根据经纬度 自动画框_Power Query获取上海市各区的经纬度
  4. 第七次CCF-D:游戏
  5. android 扫描ble设备,Android设备扫描后列出BLE设备
  6. 多层感知机从零开始实现
  7. 小鱼易连手机显示无法连接服务器,小鱼易连怎么投屏到电视 小鱼易连app手机无线投屏使用方法...
  8. cwm oracle,ORA-06512: at OLAPSYS.CWM2_OLAP_UTILITY
  9. oracle队列java_oracle 队列
  10. 简单工厂模式与策略模式
  11. 5类6类7类网线对比_超五类、六类、七类网线竟然有这么多不同之处
  12. 安装Office2013提示错误1706的解决方法
  13. dispatch_queue_create创建源码分析
  14. Java中将String类型依照某个字符分割成数组
  15. [地图]常用的地图结构
  16. 一个玩游戏的失足青年,转行做软件开发的挣扎过程(1)
  17. 软件测试工资一般是多少?
  18. zblog-php 火车头采集发布接口,wordpress火车头采集发布模块接口
  19. 解决Anaconda环境未激活的warning
  20. 犀浦某校一名计算机系大二男生,大学生恋爱的案例分析

热门文章

  1. Linux 系统 pptpd+radius+mysql 安装攻略
  2. matlab函数merge_MATLAB数据合并方法
  3. android 手柄助手,新游手柄助手app
  4. 再牛的键盘也敲不出我的孤单
  5. 【操作系统】操作系统极速入门
  6. a标签实现文件下载(ie8可用)
  7. lbe+android6.0+免root,LBE安全大师(免ROOT)
  8. 2018总结,2019展望
  9. 如何打赢呼叫中心人才管理前哨战
  10. html标签的多级列表,Word小技巧1:利用多级列表功能实现章节标题自动编号