Unity摄像机移至某物体附近观察此物体

本文实例为大家分享了Unity摄像机移至某物体附近观察的具体代码,供大家参考,具体内容如下

项目需求:要近距离观察上图的圆柱
解决核心:把摄像机移动到,圆柱前方,离圆柱z坐标5个单位的地方。
参考代码:此处移动用的是DOTween插件的“DOLocalMove(目标位置,耗费时间);”方法。

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

public class TestCameraMove : MonoBehaviour
{
 private Vector3 cameraOriginPos = new Vector3(0,1,-10);
 public Transform targetTra;
 //private Vector3 aimPos = targetGOPos - new Vector3();
 public bool flag;
 void Awake()
 {

 }

 void Start()
 {

 }

 void Update()
 {

 }
 public void MoveCamera()
 {
 Vector3 aimPos = targetTra.localPosition - new Vector3(0,0,5);
 if (!flag)
 {
  Camera.main.transform.DOLocalMove(aimPos,2);
  flag = true;
 }
 else
 {
  Camera.main.transform.DOLocalMove(cameraOriginPos,2);
  flag = false;
 }
 }
}

实现效果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Unity3D实现控制摄像机移动

    本文实例为大家分享了Unity3D实现控制摄像机移动的具体代码,供大家参考,具体内容如下 最近公司的几个项目开发内容基本相同,很多脚本直接复制过来就可以拼接项目.之前一直是代码爱好者,能自己敲的绝对不去复制粘贴.但是开发速度确实是被耽误了,所以接下来打算把开发中常用的脚本都发到博客上.自己需要的时候直接拿来.也希望能帮到你们. unity编辑器中按住鼠标右键,在通过控制键盘的wasdqe键可以自由控制视野. 下面就是实现操作的代码: using System.Collections; using

  • Unity3D实现摄像机镜头移动并限制角度

    本文实例为大家分享了Unity3D实现摄像机镜头移动并限制角度的具体代码,供大家参考,具体内容如下 摄像机镜头跟随鼠标移动,并限制上下左右的移动角度 public class ViewFromCream : MonoBehaviour { public int speed=5; public Vector3 vect; private float xcream; private float ycream; public void Update() { CreamView(); } private

  • Unity摄像机移至某物体附近观察此物体

    本文实例为大家分享了Unity摄像机移至某物体附近观察的具体代码,供大家参考,具体内容如下 项目需求:要近距离观察上图的圆柱 解决核心:把摄像机移动到,圆柱前方,离圆柱z坐标5个单位的地方. 参考代码:此处移动用的是DOTween插件的"DOLocalMove(目标位置,耗费时间):"方法. using System.Collections; using System.Collections.Generic; using UnityEngine; using DG.Tweening;

  • unity 实现摄像机绕某点旋转一周

    在Update函数中执行: if (turnAround) { playerCamera.RotateAround(transform.localPosition, transform.up, Time.deltaTime * rotateSpeed); degree += Time.deltaTime * rotateSpeed; if (degree >= 360) { turnAround = false; degree = 0; } } 补充:unity 摄像机围绕某个物体进行旋转放大缩

  • Unity查找游戏物体的六种方式详解

    一篇小白也能看懂的查找游戏物体的方式解析 – Unity 之 查找物体的几种方式.本文通过实际测试得出使用结论,大家进行简单记录,在使用时想不起来可以再来看看,多用几次基本就没有问题了. 一,Object.Find() Object.Find():根据名称找到游戏对象并返回它. void ObjectFind() { // 找父级 GameObject parent = GameObject.Find("GameObject"); Debug.Log("找父级物体,是否找到:

  • Unity实现移动物体到鼠标点击位置

    本文实例为大家分享了Unity实现移动物体到鼠标点击位置的具体代码,供大家参考,具体内容如下 目的: 移动物体到鼠标点击处屏幕所对应的空间位置,并使物体正对着点击的对象,不能倾斜. 首先,需要获取点击屏幕所对应的空间位置,这可以通过先获取屏幕坐标,然后转成空间坐标:也可以通过射线直接获取到空间位置. 其次 ,移动物体到目的地,可直接通过差值进行移动,使物体看向目标点,不能直接使用LookAt(),因为,该函数是使物体的前方面向目标点(即物体的forward指向 由物体到目标点的向量,这可能使物体

  • unity 切换场景不销毁物体问题的解决

    在用unity进行游戏开发时我们有时需要一些物体在场景切换时不需要被销毁这时我们可以用官方给的DontDestroyOnLoad()方法, 这个方法可以让我们在场景切换时不销毁场景.但如果你又返回这个场景(创建不可销毁物体的场景)时就会发现会有两个这个物体(标记为不可销毁的物体). 这个问题有一个较为简单的解决方法就是: 在物体的Awake()或Star()方法中加入这段代码.如果找到和自己一样的名字却不是自己的物体就将自己销毁,这样就解决了这个问题.(别的地方不知道,我的项目是可以用): if

  • unity实现玻璃效果

    本文实例为大家分享了unity实现玻璃效果的具体代码,供大家参考,具体内容如下 一.使用Cubemap,做一个假反射 shader代码如下: Shader "Custom/glassShader" { Properties { _MainColor("Main Color",Color)=(1,1,1,1) _MainTex ("Base (RGB)", 2D) = "white" {} _Cube("Cube&qu

  • Unity中的静态批处理和动态批处理操作

    前言 Unity在运行时可以将一些物体进行合并,从而用一个绘制调用来渲染他们.这一操作,我们称之为"批处理",能得到越好的渲染性能. Unity中内建的批处理机制所达到的效果要明显强于使用几何建模工具的批处理效果,因为,Unity引擎的批处理操作是在物体的可视裁剪操作之后进行的,处理的几何信息少很多. 材质 只有拥有相同材质的物体才可以进行批处理,因此,你需在程序中尽可能多地复用材质.如果你的两个材质仅仅是纹理不同,那么你可通过纹理拼合来将这两张纹理拼合成一张大的纹理,这样,你就可以使

  • 利用Unity制作特写镜头的示例代码

    目录 类似这种效果 1.首先制作上下两层黑边 2.摄像头聚焦的效果 类似这种效果 黑边的大小可以自行调整 这里为了方便直接用两个Button绑定了方法,有需要自行调用方法 1.首先制作上下两层黑边 创建Canvas然后在canvas上新建空物体,命名为CinemaCloseUpShot 在上面新建脚本CinemaCloseUP public class CinemaCloseUP : MonoBehaviour { public float targetSizeInput; //上下黑条的宽度

  • Opencv光流运动物体追踪详解

    光流的概念是由一个叫Gibson的哥们在1950年提出来的.它描述是空间运动物体在观察成像平面上的像素运动的瞬时速度,利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法.那么所说的光流到底是什么? 简单来说,上图表现的就是光流,光流描述的是图像上每个像素点的灰度的位置(速度)变化情况,光流的研究是利用图像序列中的像素强度数据的时域变化和相关性来确定各自像素位置的"运动".研究光流场的目的就是为了从

  • Unity实现俄罗斯方块

    本文实例为大家分享了Unity实现俄罗斯方块的具体代码,供大家参考,具体内容如下 一.使用SpriteRenderer作为小方块图片,创建7种由若干个小方块图片组成的方块,如下图: Shape-1是一个空物体,其子物体Block.Block(1).Block(2).Block(3)是小方块,Pivot是锚点(空物体),锚点用作于旋转中心点,方块旋转是以它为中心进行旋转的.旋转方块的代码如下: transform.RotateAround(pivot.position, Vector3.forwa

随机推荐