首页 > 其他分享 >Unity 漫游镜头代码实现

Unity 漫游镜头代码实现

时间:2023-06-10 20:34:25浏览次数:41  
标签:镜头 float MouseSensitivity private Unity cameraRotation Input 漫游 public

镜头移动
public class 镜头移动 : MonoBehaviour {
    private Transform cameraTransform;
    [SerializeField]private Transform characterTransform;
    private Vector3 cameraRotation;
    public float MouseSensitivity;
    public Vector2 MaxminAngle;
    private void Start()
    {
//获取组件
        cameraTransform = transform;
    }
    void Update ()
    {
        MouseSensitivity = 5;
//鼠标控制
        var tmp_MouseX = Input.GetAxis("Mouse X");      
        var tmp_MouseY = Input.GetAxis("Mouse Y");
//鼠标灵敏度
        cameraRotation.x -= tmp_MouseY * MouseSensitivity;
        cameraRotation.y += tmp_MouseX * MouseSensitivity;
//限制上下看的范围
        cameraRotation.x = Mathf.Clamp(cameraRotation.x,-65,65);
//在世界空间中变换的旋转
        cameraTransform.rotation = Quaternion.Euler(cameraRotation.x, cameraRotation.y, 0);
        characterTransform.rotation = Quaternion.Euler(0, cameraRotation.y, 0);
  }
}
人物移动
public class Move : MonoBehaviour
{
    public CharacterController controller;
    public float speed = 10.0f;
    public float gravity = -9.8f;

// Use this for initialization
void Start()
    {
    }
 void Update()
    {
        float x = Input.GetAxis("Horizontal");
        float z = Input.GetAxis("Vertical");
        //Vector3 move = new Vector3(x, 0f, z);// × global movement, we dont want
        Vector3 move = transform.right * x + transform.forward * z;// move along the local coordinates right and forward​
        controller.Move(move * speed * Time.deltaTime);
    }

标签:镜头,float,MouseSensitivity,private,Unity,cameraRotation,Input,漫游,public
From: https://www.cnblogs.com/zhiaguai/p/17471875.html

相关文章

  • 《2001:太空漫游》:Chinese应该如何翻译?
    《2001:太空漫游》:彩尼日应该如何翻译?参考译本:郝明义《2001:太空漫游》,简体版。 --------------------译文摘录:全世界人口已经多达六十亿——其中三分之一在东方国家。 原文:thepopulationoftheworldwasnowsixbillion-athirdoftheminthe彩尼日Empire. ......
  • Unity3D:Project窗口
    推荐:将NSDT场景编辑器加入你的3D工具链3D工具集:NSDT简石数字孪生Project窗口“项目”窗口显示与项目相关的所有文件,是您在应用程序中导航和查找资源和其他项目文件的主要方式。默认情况下,当您启动新项目时,此窗口处于打开状态。但是,如果找不到它,或者它已关闭,您可以通过“常规>......
  • Unity动画系统学习笔记
    title:Unity动画系统学习笔记date:2023-06-07T07:42:12Zlastmod:2023-06-07T11:27:45ZUnity动画系统学习笔记动画系统Unity动画系统动画片段AnimationClip:动画资源,用于展示游戏物体变化动画状态机AnimatorController:控制游戏物体各动画片段播放与切换......
  • Unity 3D 的NEW (堆内存)
    用容器装在AWEKENEW运行时NEW会导致分配内存时界面卡住new才刷新程序帧AWEKE是程序启动时还没走完第一帧的开头执行AWEKE里面的代码常量也在Aweke初始化赋值                                  ......
  • unity内存优化总结
    前言  一般Unity项目的内存主要分为如下方面:    资源内存    mono内存    dll内存    lua内存资源内存的分析与优化合理的资源标准  资源标准因项目而异1.如何定制合理的资源标准    1)根据项目定位受众的目标设备的性能峰值(比如内存不要超过2G),......
  • Unity UI Toolkit/UI Element两栏布局的实现
    今天遇到一个需求,用UIToolkit复刻Web端的页面,结果发现USS根本木的float属性,直接犯难了。最后通过使用绝对定位来做到两栏布局,好在页面并不复杂,否则设置起来恐怕非常麻烦。(话说如果我全用绝对定位,是不是等于在用UGUI?)实现如上,一个绝对定位解决,实际上在CSS中三栏布局也会用到绝对......
  • Unity URP简单笔记by me
    URP的特点相对于内置管线,具有更好的性能和更高的画质更好的跨平台性,能在VR、移动端、PC端、主机端保持接近的性能与效果和HDRP一样,是基于SRP的可定制渲染管线,在多个方面具有更好的自定义性可以使用连连看ShaderGraph 需要掌握URP的新知识如何将内置管线转换为URP(导入......
  • Unity框架中的核心类
    组件:Component在Unity中,所有的游戏对象都可以挂载组件。组件控制着游戏对象的行为和外观,例如渲染、动画、碰撞检测等。而Component就是组件的基类,提供了一些通用的方法和属性,例如gameObject、transform等。Component类提供了许多方便的方法和属性,可以帮助我们方便地对游戏对象......
  • 镜头成像原理
    从上面的图里面可以清晰的看到景深产生的机制,虽然任意距离的点都会成像,也就是说无论物体距离镜头什么样的距离,都会形成其光线的汇聚成像,但是像的位置是随着物体到镜头距离的不同而不同的。所以,只有那些像位置恰好在感光器件位置上面的物体可以清晰的成像,而更近和更远的物体在感光......
  • 【Unity】 HTFramework框架(四十四)【进阶篇】指令系统
    索引指令系统简单使用定义InstructionAgent编辑指令代码执行指令代码指令代码语法基本语法指令关键字注释支持的值类型标识符命名规范进阶使用运行时检视面板指令系统指令系统为Unity动态修补程序、热更新等提供了另一种补充方案,我们可以将任意一段指令代码即时编译并执行(请放心,......