unity 模仿原神的人物移动和镜头变换

2023-11-05

unity 模仿原神人物移动和镜头转换

自学了几周unity了,感觉还是要做点什么上手才快,所以先做个简单的RPG游戏吧。然后很快就做出了CS那种第一人称视觉的人物操控,不过感觉体验不太好,不能边走边看周围,所以重新模仿了原神那种可以环绕人物随便转动视觉,人物也可以随意走动的模式。

代码写得可能有点啰嗦,如果有大神知道更好的实现方法,麻烦指教一下,真心感谢

首先把镜头放到人物的身后,然后各自挂上脚本就行了。

CameraControl

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraControl : MonoBehaviour
{

    private Transform player;

    private Vector3 dir;

    // Start is called before the first frame update
    void Start()
    {
        player = GameObject.FindGameObjectWithTag("Player").transform;
        dir = player.transform.position - transform.position;
    }

    // Update is called once per frame
    void Update()
    {

        if (Input.GetKeyUp(KeyCode.LeftAlt))
        {
            Cursor.lockState = Cursor.lockState == CursorLockMode.Locked ? CursorLockMode.None : CursorLockMode.Locked;
        }

        transform.position = player.transform.position - dir;

        if(Input.GetAxis("Mouse ScrollWheel") > 0)
        {         
            transform.Translate(dir/6f, Space.World);
            dir = player.transform.position - transform.position;
        }
        else if (Input.GetAxis("Mouse ScrollWheel") < 0)
        {
            transform.Translate(-dir/6f, Space.World);
            dir = player.transform.position - transform.position;
        }

        if (Input.GetAxis("Mouse X") != 0f)
        {            
            float mouseX = Input.GetAxis("Mouse X");
            transform.RotateAround(player.position, Vector3.up, mouseX * 400 * Time.deltaTime);
            dir = player.transform.position - transform.position;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

unity 模仿原神的人物移动和镜头变换 的相关文章

  • 数字电子技术基础大作业---电子表、流水灯

    数字电子技术基础大作业 电子表 流水灯 一 电子表 1 1应用的元件 555 六片74LS160N 三片74LS26D 两片74LS04D 六个个D HEX 十六进制输入的显示数码管 电阻 电容若干 1 2简单原理 用555定时器产生频率为

随机推荐

  • NLP中的余弦相似度 Cosine similarity 是什么,如何计算(学习心得)

    余弦相似度 Cosine similarity To measure how similar two words are we need a way to measure the degree of similarity between t
  • mysql支持copymanage方式么_PostgreSQL:Java使用CopyManager实现客户端文件COPY导入

    在MySQL中 可以使用LOAD DATA INFILE和LOAD DATA LOCAL INFILE两种方式导入文本文件中的数据到数据库表中 速度非常快 其中LOAD DATA INFILE使用的文件要位于MySQL所在服务器上 LOAD
  • python安装sklearn_如何使用VScode引入python第三方模块

    pip 是 Python 包管理工具 该工具提供了对Python 包的查找 下载 安装 卸载的功能 通过pip引入第三方模块 如果已经安装了pip 直接进入第五步 比如我要引入cv2 1 打开vscode 2 打开终端 3 输入pip in
  • ROS GDB 使用和core dump分析

    参考 http wiki ros org roslaunch Tutorials Roslaunch 20Nodes 20in 20Valgrind 20or 20GDB https blog csdn net sunxiaoju arti
  • 实现领域驱动设计----第六章

    当你决定以恶搞领域概念是否是一个值对象时 你需要考虑他是否拥有以下特征 它度量或者描述了领域中的一件东西 它可以作为不变量 它将不同的相关的属性组合成一个概念整体 当度量和描述改变时 可以用另一个值对象予以替换 它可以和其他值对象进行相等性
  • 【SpringBoot】还不会SpringBoot项目模块分层?来这手把手教你

    文章目录 前言 缘由 本文阅读时长 主要目标 试用人群 快速链接 水图 正文 1 IDEA新建项目 2 创建子模块 dependencies 依赖层 重点 3 创建子模块 main 主启动层 重点 4 创建子模块 module 模块层 5
  • Eclipse关于搭建JSP运行环境(超级详细过程附带网页地址)

    1 下载jdk 2 配置环境变量 3 下载安装Tomcat 4 下载安装Eclipse 5 配置Eclipse运行第一个JSP程序 一 下载jdk 百度地址栏搜索https www oracle com java technologies
  • js替换字符串中的空格,换行符\r\n或\n替换成

    为了让回车换行符正确显示 需要将 n 或 r n 替换成 br 同样地 将空格替换存 nbsp 这里我们通过正则表达式来替换 一 替换所有的空格 回车换行符 原始字符串 var string 欢迎访问 r nhangge com 做最好的开
  • Linux_8_磁盘存储和文件系统

    1 磁盘结构 1 1 设备文件 一切皆文件 open read write close 设备文件 关联至一个设备驱动程序 进而能够跟与之对应硬件设备进行通信 设备号码 主设备号 major number 标识设备类型 次设备号 minor
  • A*寻路算法浅析

    最近刚接触A 寻路算法 听说是一种比较高效的自动寻路的算法 当然 事实也正是如此 这么好的东西 自然是要收入囊中的 说不定什么时候也能派上用场呢 为了学习这个 也是上网找了好多资料 看了好多博客 但是貌似有些关键点没有具体说明 所以自己也是
  • understand - 笔记

    术语 Terminology Architecture 层级 An architecture is a hierarchical aggregation of source code units entities An architectu
  • 用vb语言编写一个抄底的源代码程序实例

    以下是一个基于通达信软件编写的简单抄底源代码程序 用于自动识别股票的底部形态并发出买入信号 vbs 复制 导入通达信软件自带的股票数据接口 Dim TdxApi Set TdxApi CreateObject TdxApi TdxLocal
  • Winform自定义控件 —— 指示灯

    在开始阅读本文之前 如果您有学习创建自定义控件库并在其他项目中引用的需求 请参考 在Visual Studio中创建自定义Winform控件库并在其他解决方案中引用https blog csdn net YMGogre article de
  • Rx Java 异步编程框架

    Rx Java 文章目录 Rx Java 名词定义 举个例子 基本概念 Backpressure Upstream Downstream Objects in motion Assembly time Subscription time R
  • Cocos2d-x使用Luajit将Lua脚本编译为bytecode,从而实现加密

    项目要求对lua脚本进行加密 查了一下相关的资料 得知lua本身可以使用luac将脚本编译为字节码 bytecode 从而实现加密 试了一下 确实可行 下面是使用原生的lua解释器编译字节码 1 新建一个名为1 lua的文件 里面只有一句话
  • 带宽与码元的关系_带宽、速率(波特率、比特率)和码元宽度简述

    首先弄清楚带宽和速率的关系 信道带宽与数据传输速率的关系可以奈奎斯特 Nyquist 准则与香农 Shanon 定律描述 奈奎斯特准则指出 如果间隔为 2 f 通过理想通信信道传输窄脉冲信号 则前后码元之间不产生相互窜扰 因此 对于二进制数
  • 【云原生之Docker实战】使用Docker部署web端vscode

    云原生之Docker实战 使用Docker部署web端vscode 一 vscode server介绍 二 检查本地docke环境 1 检查系统版本 2 检查docker版本 3 检查docker状态 三 下载vscode镜像 四 部署vs
  • 北京理工大学:《Python语言程序设计》详细笔记

    第一章 程序设计基本方法 计算机与程序设计 计算机是根据指令操作数据的设备 计算机发展参照摩尔定律 表现为指数形式 编译和解释 计算机执行源程序两种方式 编译和解释 编译 将源代码一次性转换成目标代码的过程 执行编译过程的程序叫编译器 co
  • C#是不是不能把基类对象强转成它派生类对象

    转载请标明是引用于 http blog csdn net chenyujing1234 有补充的 请大家指出 最近在论坛上看到有网友问到C 中对象强转的问题 自己虽然接触过C 但对这个特性还是第一次接触 所以这里找到一些资料与大家一起分享
  • unity 模仿原神的人物移动和镜头变换

    unity 模仿原神人物移动和镜头转换 自学了几周unity了 感觉还是要做点什么上手才快 所以先做个简单的RPG游戏吧 然后很快就做出了CS那种第一人称视觉的人物操控 不过感觉体验不太好 不能边走边看周围 所以重新模仿了原神那种可以环绕人