改自:http://blog.csdn.net/fzhlee/article/details/8667251

public GameObject[] obj;//观察对象集合
private int num=0;
//  public Transform target;
public float distance = 3.0f;//摄像机正对物体的距离
public float height = 1.0f;//摄像机正对物体的高度
public float damping = 5.0f;//摄像机位移速度
private bool smppthRotation = true;//是否平滑转动角度
public float rotationDamping = 10.0f;//摄像机角度转动的速度
public float x_=0f;//摄像机距离物体x轴的距离
private Vector3 targetLookAtOffset;//
public float bumperDistanceCheck = 2.5f;
public float bumperCameraHeight = 1.0f;
private Vector3 bumperRayOffset;
// Update is called once per frame
void Update () {
lookatobj(obj[num].transform);
}
void lookatobj(Transform target)
{
Vector3 wantedPosition = target.TransformPoint(x_, height, -distance);
RaycastHit hit;
//若摄像机和物体之间有障碍物 则将摄像机拉到障碍物之前
//Vector3 back = target.transform.TransformDirection(-1 * Vector3.forward);
//if (Physics.Raycast(target.TransformPoint(bumperRayOffset), back, out hit, bumperDistanceCheck))
//{
//    // clamp wanted position to hit position
//    wantedPosition.x = hit.point.x;
//    wantedPosition.z = hit.point.z;
//  //  wantedPosition.y = Mathf.Lerp(wantedPosition.y, hit.point.y + bumperCameraHeight,  Time.deltaTime * damping);
//}
transform.position = Vector3.Lerp(transform.position, wantedPosition, Time.deltaTime * damping);//摄像机位移
Vector3 lookPosition = target.position;//target.TransformPoint(targetLookAtOffset);
Quaternion wantedRotation = Quaternion.LookRotation(lookPosition - transform.position, target.up);
if (smppthRotation)
{
//平滑转动摄像机
transform.rotation = Quaternion.Slerp(transform.rotation, wantedRotation, Time.deltaTime * rotationDamping);
}
else transform.rotation = wantedRotation;
//将障碍物隐藏
if (Vector3.Distance(transform.position, wantedPosition) <=2f)
{
Vector3 dir=transform.TransformDirection(Vector3.forward);
if (Physics.Raycast(transform.position, dir, out hit))
{
if (hit.collider.gameObject.name != target.name)
{
hit.collider.gameObject.SetActive(false);
}
}
}
if (transform.position == wantedPosition && transform.rotation == wantedRotation)//循环观察
{
num++;
num %= obj.Length;
obj[num].SetActive(true);//显示对象
}
}

Unity镜头特写效果相关推荐

  1. Unity实现瞄准镜效果

    这篇文章我们讨论一下如何通过 Camera来制作一个瞄准镜的效果,玩射击类游戏比较多的朋友大概就能感觉出来这个功能大致的实现效果如何了. 主要的方法就是通过调整 Camera的 Field Of Vi ...

  2. Unity实现瞄准镜效果之美

    玩过射击类游戏,里面的狙击枪是带有瞄准镜的,可以方便玩家可以瞄准远处的敌人,本篇文章要介绍的就是这个功能的实现,通过 Camera来制作一个瞄准镜的效果. 主要的方法就是通过调整 Camera的 Fi ...

  3. unity 条目换位效果_Unity AI主题博客条目

    unity 条目换位效果 Welcome to the first of Unity's new AI-themed blog entries! We have set up this space a ...

  4. css - 实现镜头拉近效果

    文章目录 css - 实现镜头拉近效果 1.代码实现 2.效果 3.说明 css - 实现镜头拉近效果 1.代码实现 <!DOCTYPE html> <html lang=" ...

  5. Unity 实现贴花效果的制作教程

    c#教程​https://www.cnblogs.com/Yesi/p/15829200.html ​ 有些游戏中的战斗痕迹的效果会通过贴花来实现的,贴花的方式多种多样.而在Unity中,有一种给官方 ...

  6. Unity镜头跟踪的四种方法

    Unity镜头跟踪的四种方法 新手代码 固定相机跟随,这种相机有一个参考对象,它会保持与该参考对象固定的位置,跟随改参考对象发生移动 using UnityEngine; using System.C ...

  7. unity气流模拟效果

    机房气流模拟效果 参考 效果展示: 资源链接:unity气流模拟效果-Unity3D文档类资源-CSDN下载

  8. 用Unity实现景深效果

    用Unity实现景深效果 景深也是一种非常常见的后处理手段,它用来模拟相机拍摄画面的效果.今天我们讨论如何在Unity中实现它. 简单来说,景深效果可以拆分为两个部分,一个部分是聚焦,使画面中指定的区 ...

  9. Unity 翻书效果

    Unity翻书效果 目前做的VR项目中需要一个翻阅魔法书的效果,考虑过使用UnityBookPageCurl-master插件,但是那个插件是纯UI显示的,只有二维效果,在VR里观感不佳,之后在网上找 ...

  10. Unity时光倒流效果实现

    Unity时光倒流效果实现<25/11/2017> 场景:一个Panel,一个由众多小Cube堆叠而成的巨大Cube,巨大Cube中心放置爆炸点Bomb. 实现方式:一共就三个脚本,每个C ...

最新文章

  1. 扩增子图表解读1箱线图:Alpha多样性,老板再也不操心的我文献阅读了
  2. Android Material Design之在RecyclerView中嵌套CardView实现
  3. 数据科学 python_为什么需要以数据科学家的身份学习Python的7大理由
  4. 第二十八期:阿里云VS腾讯云 谁才是中国未来的云计算之王?
  5. python如何设置字体大小_[Python Basic]如何设置 Python 的运行环境
  6. raspberry pi_如何在Raspberry Pi上使用LÖVE游戏引擎对游戏进行编程
  7. Chrome developer tool介绍(javascript调试)
  8. Spring Batch的事务-Part 1:基础
  9. line-height学习与总结
  10. web留言板整蛊网站愚人节
  11. 360千兆路由计算机安装方法,360路由器怎么设置(设置步骤_360路由器怎么安装?-192路由网...
  12. 2021 年年度最佳开源软件!
  13. 适用智能电表,热能表,气表等段码LCD液晶显示驱动芯片I2C 接口VK2C22A/B,RAM映射44*4, 40*4
  14. 微信小程序使用swiper制作轮播图留白的解决方法
  15. php把搜索的结果导出,excel表格查找数据之后导出-如何将Excel查找全部后得到的内容Copy出来...
  16. 关于 使用pyecharts进行数据可视化分析 的学习报告I
  17. 螺栓校核matlab仿真
  18. json php 传输,使用JSON实现数据的跨域传输的php代码
  19. 浅谈溯源反制与防溯源
  20. nyist--周期串

热门文章

  1. 计算机使用的dns错误,dns错误,教您dns错误怎么修复
  2. 不拆微动,一招解决鼠标双击问题
  3. Springboot整合Hibernate入门
  4. VIVADO中使用BD时,常用的IP
  5. Android手机摄像头作为PC摄像头开发
  6. PyG框架:Graph Classification
  7. 这篇文章不错,仔细读读,码农晋升为技术管理者后,痛并快乐着的纠结内心...
  8. python runtime错误_使用Django框架遇到RuntimeError: populate() isn't reentrant错误
  9. JavaFX报错: Exception in thread WindowsNativeRunloopThread java.lang.NoSuchMethodError
  10. 人工智能初步学习笔记