camera视角控制以及定位观察

1.类似英雄联盟的相机控制

using UnityEngine;
using System.Collections;

public class CameraCntrl : MonoBehaviour
{
public float camSpeed = 1;
public int GUIsize = 25;
public Transform target;
public bool cameraLocked = false;

void Update()
{
if(Input.GetKeyDown(KeyCode.Y))
{
cameraLocked = !cameraLocked;
}

if(Input.GetKeyDown(KeyCode.Space))
{
ResetCameraPos();
}

if(cameraLocked == false)
{
Rect recdown = new Rect(0, 0, Screen.width, GUIsize);
Rect rectup = new Rect(0, Screen.height - GUIsize, Screen.width, GUIsize);
Rect rectleft = new Rect(0, 0, GUIsize, Screen.height);
Rect rectright = new Rect(Screen.width - GUIsize, 0, GUIsize, Screen.height);

if(recdown.Contains(Input.mousePosition))
{
transform.Translate(0, 0, -camSpeed, Space.World);
}

if (rectup.Contains(Input.mousePosition))
{
transform.Translate(0, 0, camSpeed, Space.World);
}

if (rectleft.Contains(Input.mousePosition))
{
transform.Translate(-camSpeed, 0, 0, Space.World);
}

if (rectright.Contains(Input.mousePosition))
{
transform.Translate(camSpeed, 0, 0, Space.World);
}
}

else if(cameraLocked)
{
ResetCameraPos();
}
}

void ResetCameraPos()
{
Vector3 pos = transform.position;
pos.x = target.transform.position.x;
pos.z = target.transform.position.z - 5;
transform.position = pos;
}
}

2.距离控制

using UnityEngine;
using System.Collections;

public class cameraZoom : MonoBehaviour
{
public float currentFov = 60;
public float sensitivity = 50;
public float damping = 5;

public float minFov = 40;
public float maxFov = 60;

void Start ()
{
currentFov = camera.fieldOfView;
}

// Update is called once per frame
void Update ()
{
currentFov -= Input.GetAxis("Mouse ScrollWheel") * sensitivity;
currentFov = Mathf.Clamp(currentFov, minFov, maxFov);
camera.fieldOfView = Mathf.Lerp(camera.fieldOfView, currentFov, Time.deltaTime * damping);
}
}

时间: 2024-11-08 10:24:03

camera视角控制以及定位观察的相关文章

unity中camera摄像头控制详解

目录 1. 缘起 2. 开发 2.1. 建立项目 2.2. 旋转 2.2.1. 四元数 2.3. 移动 2.3.1. 向量操作 2.4. 镜头拉伸 2.5. 复位 2.6. 优化 1 缘起 我们的产品是使用unity开发水利BIM(水利建筑信息模型),项目中需要控制摄像 头对模型进行360度查看,请注意所有操作都是移动摄像头,不是移动模型.摄 像头能进行移动.旋转.改变焦距操作,类似于SketchUp的控制操作: 摄像头移动时,根据当前旋转方向(Rotation)进行移动 摄像头距离模型越远,摄

【Unity3D】使用鼠标键盘控制Camera视角(即时战略类游戏视角):缩进,拉远,旋转

今天写一个demo,要用到鼠标键盘控制三维视角,因此写了个脚本用于控制. 该脚本可以用于即时战略类游戏的视角,提供了缩进,拉伸,旋转.同时按住鼠标右键不放,移动鼠标可以实现第一人称视角的效果. 1 using UnityEngine; 2 using System.Collections; 3 4 public class CameraController : MonoBehaviour { 5 6 7 public float near = 20.0f; 8 public float far

Tips7:Unity中 Scene视图 和 Game视图 中 视角(Camera)的控制

选中你要改变的相机,然后点击GameObject-->Align With View 选项(快捷键Ctrl+Shift+F)使相机视角和当前Sence视图中一样 通过这样可以控制在Game视图(也就是运行中)中的样子. 相反的,也可以通过选择游戏物体并点击GameObject-->Align View to Selected 选项的方法,来控制Scene中的视图:

FlightGear 视角控制

Flightgear提供了非常灵活的模块化功能 这里就简要记录一下视角切换功能 首先,需要了解一下Flightgear中的property tree的主要内容,这里暂略. http://wiki.flightgear.org/PropertyList_XML_files 然后,我们看官方说明(http://wiki.flightgear.org/Howto:Configure_camera_view_windows) FlightGear's XML-configurable camera vi

Unity实现游戏中摄像机视角控制

using UnityEngine; using System.Collections; public class NewCamera : MonoBehaviour { public GameObject cameraFather; public Transform target; public float rotatespeed; public float scalespeed; public float min; public float max; public Transform obj

如何使用threejs实现第一人称视角的移动

在数据可视化领域利用webgl来创建三维场景或VR已经越来越普遍,各种开发框架也应运而生.今天我们就通过最基本的threejs来完成第一人称视角的场景巡检功能.如果你是一位threejs的初学者或正打算入门,我强烈推荐你仔细阅读本文并在我的代码基础之上继续深入学习.因为它将是你能够在网上找到的最好的免费中文教程,通过本文你可以学习到一些基本的三维理论,threejs的api接口以及你应该掌握的数学知识.当然要想完全掌握threejs可能还有很长的路需要走,但至少今天我将带你入门并传授一些独特的学

【Unity】2.8 相机(Camera)

分类:Unity.C#.VS2015 创建日期:2016-03-31 一.简介 Unity的相机用来向玩家呈现游戏世界.你在场景中始终至少有一个相机,但也可以有多个.多个相机可以带给您双人分屏效果或创建高级的自定义效果.您可以让相机动起来,或者用物理(组件)控制它们.您能想到的任何东西,几乎都可以通过相机变成可能,为了配合您的游戏风格,还可以使用典型或独特的相机. 相机 (Camera)是为玩家捕捉并展示世界的一种设备.通过自定义和操作相机,可以使您的游戏演示真正与众不同.您可以在一个场景中使用

【淡墨Unity3D Shader计划】五 圣诞用品: Unity在Shader三种形式的控制&混合操作编译

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/42060963 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 邮箱: [email protected] 文章开头,先给自己诚求个游戏研发实习的好去处. 浅墨今年1月.明年上半年有近半年的空暇时间可供实习. 近5年游戏编程经验,能够胜任全职的游戏开发工作.仅仅拿实习生的工资(性价比非常高有

EasyPR--开发详解(5)颜色定位与偏斜扭转

转自https://www.cnblogs.com/subconscious/p/4351007.html 让我们先看一下示例图片,这幅图片中的车牌通过颜色的定位法进行定位并从偏斜的视角中扭正为正视角(请看右图的左上角). 图1 新版本的定位效果 下面内容会对这两个特性的实现过程展开具体的介绍.首先介绍颜色定位的原理,然后是偏斜扭正的实现细节. 由于本文较长,为方便读者,以下是本文的目录: 一.颜色定位 1.1起源 1.2方法 1.3不足与改善 二.偏斜扭正 2.1分析 2.2ROI截取 2.3