1、实现相机跟随主角运动

  一种简单的方法是把Camera直接拖到Player下面作为Player的子物体,另一种方法是取得Camera与Player的偏移向量,并据此设置Camera位置,便能实现简单的相机跟随了。

  这里我们选取第二种方法,首先给Camera添加一个脚本,取名为FollowPlayer,脚本很简单不做说明了 

 public class FollowPlayer : MonoBehaviour {

         private Transform player;
private Vector3 offsetPosition; // Use this for initialization
void Start () {
player = GameObject.FindGameObjectWithTag(“Player”).transform;
offsetPosition = transform.position - player.position;
transform.LookAt(player.position);
} // Update is called once per frame
void Update () {
transform.position = offsetPosition + player.position; }

2、视野的缩放

  鼠标滚轮向前拉近视野,向后视野变远。原理是设置一个变量distance为偏移向量的模,鼠标滚轮滑动改变distance的值,然后根据distance设置Camera的位置

  其中scrollSpeed为定义的一个float变量用于调整缩放的速度

 private float distance;

 private void ScrollView()
{
distance = offsetPosition.magnitude;
//向前滑动拉近 向后滑动拉远
distance -= Input.GetAxis("Mouse ScrollWheel") * scrollSpeed;
distance = Mathf.Clamp(distance, MinDistance, MaxDistance);
offsetPosition = offsetPosition.normalized * distance;
} //然后在Update里面调用ScrollView方法

3、视野旋转

  采用transform.RotateAround方法,让Camera根据Player的位置旋转

  

 private void RotateView()
{
//鼠标右键按下可以旋转视野
if (Input.GetMouseButtonDown())
isRotating = true;
if (Input.GetMouseButtonUp())
isRotating = false; if (isRotating)
{
Vector3 originalPosition = transform.position;
Quaternion originalRotation = transform.rotation;
transform.RotateAround(player.position, player.up, rotateSpeed * Input.GetAxis("Mouse X"));
transform.RotateAround(player.position, transform.right, -rotateSpeed * Input.GetAxis("Mouse Y"));
float x = transform.eulerAngles.x;
//旋转的范围为10度到80度
if (x < || x > )
{
transform.position = originalPosition;
transform.rotation = originalRotation;
} } offsetPosition = transform.position - player.position;
}

unity3d简单的相机跟随及视野旋转缩放的更多相关文章

  1. Unity中几种简单的相机跟随

    #unity中相机追随 固定相机跟随,这种相机有一个参考对象,它会保持与该参考对象固定的位置,跟随改参考对象发生移动 using UnityEngine; using System.Collectio ...

  2. unity3D:游戏分解之角色移动和相机跟随

          游戏中,我们经常会有这样的操作,点击场景中某个位置,角色自动移动到那个位置,同时角色一直是朝向那个位置移动的,而且相机也会一直跟着角色移动.有些游戏,鼠标滑动屏幕,相机就会围绕角色旋转. ...

  3. Unity 3d 实现物体跟随摄像机视野运动

    https://blog.csdn.net/qq_31411825/article/details/61623857 Unity 3d 实现物体跟随摄像机视野运动Created by miccall ...

  4. [Android] 实现简单的相机程序

    好久没写了,有些东西做过都快忘了,赶紧记一下. 现在来实现一个简单的相机程序. 原文地址http://www.cnblogs.com/rossoneri/p/4246134.html 当然需要的话可以 ...

  5. unity 常用的几种相机跟随

    固定相机跟随 这种相机有一个参考对象,它会保持与该参考对象固定的位置,跟随改参考对象发生移动 using UnityEngine; using System.Collections; public c ...

  6. Unity相机跟随

    固定相机跟随 这种相机有一个参考对象,它会保持与该参考对象固定的位置,跟随改参考对象发生移动 using UnityEngine; using System.Collections; public c ...

  7. Threejs【坐标转换】如何让annotation跟随物体一起旋转

    现在根据鼠标点击的屏幕位置能够得到屏幕的坐标event.clientX和event.clientY,然后我的annotation就初始化在这个屏幕坐标的位置,那么如何绑定annotation和三维物体 ...

  8. MMORPG中的相机跟随算法

    先上代码 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Cam ...

  9. unity相机跟随Player常用方式

    固定跟随,无效果(意义不大) public class FollowPlayer : MonoBehaviour { public Transform Player; private Vector3 ...

随机推荐

  1. HDU 2255 奔小康,赚钱(KM算法模板)

    解决问题的思路: 二部图,正确的匹配,卡费用流,使用KM算法. #include <cstring> #include <algorithm> #include <cst ...

  2. 一个高速做git提交的脚本

    用于高速将项目中的全部改变push到代码仓库.能够替代下面操作: git add . git commit -m "" git push 项目地址: https://github. ...

  3. Libevent使用样例,从简单到复杂

            转载请注明出处:http://blog.csdn.net/luotuo44/article/details/39670221 本文从简单到复杂.展示怎样使用libevent.网上的很多 ...

  4. 初尝Java序列化/反序列化对象

    看个类: package com.wjy.bytes; import java.io.Serializable; public class ObjTest implements Serializabl ...

  5. hdu1160(最长上升子序列)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1160 题意:给定一些小猫的属性:体重和速度.然后求某些猫顺序的排列,使得体重上升,速度下降,这样的排列 ...

  6. 自己做站点(二) 20块钱搞定一个企业站:域名&amp;空间申请

    域名注冊的话,推荐大家用新网,由于申请费用确实非常低,但续费的价格还是比較高的,所以不妨多申请几年.打开站点: http://www.xinnet.com/ 注冊一个帐号,然后申请域名,你能够看到,费 ...

  7. jquery关于表格隐藏和显示问题

    1. 关于指定表格指定列隐藏显示 $(":checkbox[name*=month]").each(function(){ if(!$(this).attr("check ...

  8. redis加入到Windows 服务

    1.cmd命令  安装命令: redis-server.exe --service-install redis.windows.conf --loglevel verbose  卸载命令:  redi ...

  9. Django写的投票系统1(转)

    当然主要是从django的帮助文档里面来的,权当是翻译吧 这个投票系统的主要功能有 1.一个前台页面,可以让用户来投票 2.一个管理员页面,可以用来添加.修改.删除投票 首页第一步要确定你已经安装了D ...

  10. HashMap源码解读(转)

    http://www.360doc.com/content/10/1214/22/573136_78188909.shtml 最近朋友推荐的一个很好的工作,又是面了2轮没通过,已经是好几次朋友内推没过 ...