摄像机位置调节

private var addHeight  = false;
private var minusHeight = false;

function LateUpdate () {
    Apply (transform, Vector3.zero);
    distance =( Time.deltaTime*Input.GetAxis("Mouse ScrollWheel")*20 +1)* distance;    
    if (Input.GetKeyDown(KeyCode.PageUp)){
        addHeight = true;
    }
    if (Input.GetKeyUp(KeyCode.PageUp)){
        addHeight = false;
    }        
    if (Input.GetKeyDown(KeyCode.PageDown)){
        minusHeight = true;
    }
    if (Input.GetKeyUp(KeyCode.PageDown)){
        minusHeight = false;
    }
    if (addHeight){
        height = height + Time.deltaTime * 10;
    }
    if (minusHeight && height >=0){
        height = height - Time.deltaTime * 10;        
    }    
}

时间: 2024-08-07 04:31:32

摄像机位置调节的相关文章

SharpGL学习笔记(十一) 光源创建的综合例子:光源参数可调节的测试场景

灯光的测试例子:光源参数可以调节的测试场景 先看一下测试场景和效果. 场景中可以切换视图, 以方便观察三维体和灯光的位置.环境光,漫射光,镜面反射光都可以在四种颜色间切换. 灯光位置和摄像机位置(LookAt)可以输入数值或者点动调节,也可以按键盘的QEWASD六个键进行调节. 你还会注意到:球体对光的效果要敏感柔和些,而那个六面体BOX看来效果不好.这是因为灯光对顶点发生作用.在程序里面,球休的顶点数量有20*10,而BOX只有4*6个,而且还重合了一些顶点. 这一点,在3dsmax的全局光照

摄像机俯视跟随游戏角色的实现

1 // CameraMovement.cs 2 using UnityEngine; 3 using System.Collections; 4 5 public class CameraMovement : MonoBehaviour 6 { 7 public float smooth = 1.5f; // 摄像机跟踪速度 8 9 10 private Transform player; // 引用角色位置 11 private Vector3 relCameraPos; // 摄像机与角色

《逐梦旅程 WINDOWS游戏编程之从零开始》笔记9——游戏摄像机&三维地形的构建

第21章 游戏摄像机的构建 之前的程序示例,都是通过封装的DirectInput类来处理键盘和鼠标的输入,对应地改变我们人物模型的世界矩阵来达到移动物体,改变观察点的效果.其实我们的观察方向乃至观察点都是没有变的,变的只是我们3D人物的位置.说白了就是用D3DXMatrixLookAtLH在资源初始化时固定住视角,在程序运行过程中接收到消息并改变三维人物模型的世界矩阵而已.这章的主要内容就是创建出一个可以在三维空间中自由移动的摄像机类,我们准备给这个摄像机类取名为CameraClass. 设计摄

Unity3d中第三人称摄像机跟随的实现

最简单的一种就是先设置好摄像机跟物体的相对距离, 在脚本里就可以由物体的位置,跟相对距离,就可以求出摄像机的位置, 用插值的方法可以让摄像机平滑跟随. 1 public class CamFollow1 : MonoBehaviour 2 { 3 4 private Vector3 offset; 5 public Transform player; 6 7 void Start() 8 { 9 offset = player.position - transform.position; 10

延迟渲染之由深度重建世界位置

前面一篇文章介绍了混合方式的延迟渲染(Hybrid deferred shading),本文来讲解一下其中的一个细节,由深度构建世界位置,我们这里假定使用D3D9以及左手坐标系. 我在这里介绍两种方式,这两种方式也就跟实现方式有一定的关系. 方法1: 如果我们在第一遍中写深度时使用的是经过透视除法的z值 1 // 第一遍时输出深度 2 float4x4 matViewProjection; 3 struct VS_INPUT 4 { 5 float4 Position : POSITION0;

Direct-X学习笔记--三维摄像机

一.介绍 哇!到了传说中的3D摄像机啦! 之前我们写的东东,都是观察点不动,通过世界变换让东西动,今天,通过三维摄像机我们就可以改变我们的观察点,观察方向,随意在三维空间中驰骋.之前我们所设定的视角都是通过D3DXMatrixLookAtLH这个函数,通过几个设定好的向量,将视角初始化的,而在程序真正运行时,视角就不再改变了,而这次,我们要实时的生成视角变换矩阵,实时的改变我们的视角,我们所谓的摄像机就是这个原理. 我们通过一个类来封装摄像机,这个类主要的字段就是用四个分量:右分量(rightv

Directx11学习笔记【十九】 摄像机的实现

本文由zhangbaochong原创,转载请注明出处:http://www.cnblogs.com/zhangbaochong/p/5785100.html 之前为了方便观察场景,我们采用的方法是鼠标控制旋转视角和镜头拉伸,但是观察点依然限制在一个球面内,目标点也始终为坐标原点.为了能够自由的从各个角度.各个位置观察场景,实现一个第一人称摄像机是必不可少的. 1.摄像机视角矩阵推导 摄像机在空间有着特定的位置及朝向,它所观察到的物体取决于物体与摄像机的相对位置.为了表示摄像机位置,我们可以使用一

OpenGL ES 2.0 摄像机与投影

1.摄像机的设置 摄像机的位置坐标 摄像机的位置 摄像机up方向 1 Matrix.setLookAtM( 2 mVMatrix, //存储生成矩阵元素的float[]类型数组 3 0, //填充起始偏移量 4 cx,cy,cz, //摄像机位置的x,y,z坐标 5 tx,ty,tz, //观察目标点x,y,z坐标 6 upx,upy,upz //up向量在x,y,z轴上的分量 7 ); 2.投影方式-正交投影 设置视口 1 GLES20.glViewport(x,y,width,height)

自学Unity3D 之 贪吃蛇 添加摄像机跟随

在Unity的世界中, 物体的位置都是由向量构成的. 今天所需要做的就是让摄像机保持跟蛇头的相对距离. 首先  设蛇头的位置在A 点  , 摄像机的位置在B 点 则  我们可以知道  他们的offset = B - A; 所以  新的摄像机位置应该为 B =  A + offset: 令 :  摄像机的移动是根据帧走的  所以是抖动的 , 我们应该做一个平滑处理 恰好Vector 给我们提供了一个方法 利用插值做到平滑移动 Vector3.lerp(B,A + offset,0.1f)  也就是