有限状态机(续)

一、添加刀光和场景

1、资源链接:

武器刀光:https://assetstore.unity.com/packages/tools/particles-effects/melee-weapon-trail-1728

场景:https://assetstore.unity.com/packages/3d/environments/fantasy/casual-tiny-environment-jungle-set-169765

2、实现原理

(1)场景

在地板上添加一个盒装控制器,取消网格材质

在场景中的四周添加网格碰撞器

(2)刀光

将光效的脚本覆盖之前的拖尾脚本

设置一个起点和终点

在代码中更改API

二、摄像机震动(击打效果)

1、unity设置

创建一个空物体作为父级,管理所有的子级摄像机

添加一个振动监听

同时需要一个脚本挂在到被监听的对象身上

在代码中选择旧版种类

使用6Dshake 下面的两个值是振动的强度

2、代码调用

在控制层写这个方法

//屏幕震动
public void ScreenImpulse()
{impulseSource.GenerateImpulse();
}

 在武器层调用这个方法

三、摄像机碰撞

添加一个虚拟摄像机的扩展功能,增加摄像机碰撞器

一般调整摄像机半径,可以实现较好的效果;

图层要选择所有,使摄像机与所有的图层碰撞;

设置一个与fllowPos点的目标距离 0.5合适;


四、命中效果(屏幕后处理)

1、添加后处理文件

五、相机平滑位移(Dotween)

使用Dotween插件和Cinemachine插件共同实现

在模型层增加一个动画事件,调用这个摄像机的位移方法

在玩家层增加这个摄像机位移方法

在配置层定义这个相机位移的数据,并且这个位移效果可能有多个,所以是一个数组

1、配置层

// 一次摄像机位移的全部数据
[Serializable]
public class CameraMoveModel
{//相机要偏移的程度public Vector3 Target;//多久偏移,平滑时间(速度)public float Time;//回归时间public float BackTime;
}

2、玩家层

声明两个变量

在start中,先获取摄像机目标的位置,转化为一个v3类型的

然后把这个位置的本地坐标赋值给摄像机坐标

写一个相机位移的方法并且接收三个参数,对应配置中的三个参数

调用Dotween插件中的方法

先位移摄像机的位置加上一个偏移值,然后使用Lamboo表达式委托,执行回到原来的位置

//基于攻击的相机移动
public void CameraMoveForAttack(Vector3 offset,float time,float backTime)
{//花time的时间去到offset的位置//经过backTime时间回归到cameaPos的位置cameraTarget.DOLocalMove(camerPos + offset, time).onComplete = () =>{cameraTarget.DOLocalMove(camerPos, backTime);};
}

3、模型层

因为配置中是一个数组的形式,所以在这里接收一个index

然后在SO配置文件里面写入第几个这里就会传入几

然后调用这个方法,并且传入参数

六、角色平滑位移 

不使用Dotween来进行移动的原因是:UCC在移动时会有碰撞,不会穿模

与摄像机平滑移动差不多

角色的移动要使用CharacterController

1、配置层


// 一次角色位移的全部数据
[Serializable]
public class CharacterMoveModel
{//角色要偏移的程度public Vector3 Target;//多久偏移,平滑时间(速度)public float Time;
}

2、玩家层

使用协程来调用攻击移动方法;

注:协程传参数修改的原因是,v3会导致移动方向相反,应该使用自身的坐标方向

3、模型层

调用玩家层的方法,可以看作是一个动画事件

这里面调用方法传入的参数,就是配置SO中的设置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/886610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【日常记录-Git】撤销工作区中所有已跟踪文件的修改

1. 简介 在Git中,若想恢复工作区中的所有文件到它们最后一次提交时的状态,可以使用 git restore 命令结合适当的选项来实现。不过,需要注意的是,git restore 默认不会递归地恢复目录,但你可以通过指定 . (代表当前目…

2024年11月16日 星期六 重新整理Go技术

今日格言 坚持每天进步一点点~ 一个人也可以是一个团队~ 学习全栈开发, 做自己喜欢的产品~~ 简介 大家好, 我是张大鹏, 今天是2024年11月16日星期六, 很高兴在这里给大家分享技术. 今天又是休息的一天, 做了很多的思考, 整理了自己掌握的技术, 比如Java, Python, Golang,…

微信小程序02-页面制作

微信小程序页面制作指南 目录 微信小程序页面制作 1. 个人信息展示小程序 案例分析 需求背景:许多大学生毕业后需要求职,因此制作一个展示个人信息的微信小程序对招聘人员快速了解求职者非常有帮助。页面布局:页面分为头像区域和详细信息…

【Linux】软件包管理器yum、编辑器vim

Linux 1.源码安装 和 软件包安装2.软件包管理器yum1.什么是包管理器 3.vim编辑器1.vim常见的三种模式2.vim命令模式:命令集3.vim底行模式:命令集4.使用vim的小技巧5.vim配置 1.源码安装 和 软件包安装 在Linux下安装软件,一个通常的办法是下…

高项 - 项目进度管理

个人总结,仅供参考,欢迎加好友一起讨论 博文更新参考时间点:2024-12 高项 - 章节与知识点汇总:点击跳转 文章目录 高项 - 项目进度管理进度管理ITO规划监控 管理基础项目进度计划的定义和总要求管理新实践用户故事(补…

【CSS】opacity 影响 z-index 不生效

准备知识 一般来说,z-index 不生效的原因有: 父元素的 position 属性: z-index 只对 position 属性为 relative、absolute 或 fixed 的元素有效。 其他元素的 z-index: 如果页面中有其他元素也设置了较高的 z-index,…

11.15 ~ 18日志

1.Problem - A - Codeforces 这道题感觉网上的题解都讲得非常复杂,但是也给了我一些启发,最后a出来后发现并没有那么困难,首先这题假设我们的答案是x,那么就代表有(sum k) / x个牌堆,想要让x合法需要满足两个条件 1.(sum k) / x > maxn,因为每副牌堆不能有重复的牌,那么…

django安装与项目创建

一、安装 在终端输入 pip install django //或者()指定安装版本 pip install django2.2 二、创建项目 2.1创建项目 django-admin startproject 项目名 2.2Django 项目中的关键文件 _init_.py:将目录标识为python包setting.py:核心配置文件,定义项目…

《高压物理学报》

刊载内容主要包括: 高温高压下材料的力、热、光、电、磁等特性 高温高压下材料的微观结构和相变 高温高压物态方程 动态及静态高压加载和测试技术 高压合成新材料 高压地球和行星科学 高压下物质的动态响应 冲击和爆轰现象 高压与化学、生物等交叉科学及技…

Python学习28天

#冒泡排序,将如下列表从大到小排序 num[1,2,3,4,5] print(f"排序前:{num}")#第一次排序:将最小的排到最后一个位置: # 第1次比较 [2,1,3,4,5] # 第2次比较 [2,3,1,4,5] # 第3次比较 [2,3,4,1,5] # 第4次比较 [2,3,4,5,…

Shell脚本5 -- 脚本与用户交互read

声明: 本文的学习内容来源于B站up主“泷羽sec”视频【shell编程(4)脚本与用户交互以及if条件判断】的公开分享,所有内容仅限于网络安全技术的交流学习,不涉及任何侵犯版权或其他侵权意图。如有任何侵权问题&#xff0c…

【大语言模型】ACL2024论文-16 基于地图制图的罗马尼亚自然语言推理语料库的新型课程学习方法

【大语言模型】ACL2024论文-16 基于地图制图的罗马尼亚自然语言推理语料库的新型课程学习方法 目录 文章目录 【大语言模型】ACL2024论文-16 基于地图制图的罗马尼亚自然语言推理语料库的新型课程学习方法目录摘要:研究背景:问题与挑战:如何解…

【网络安全 | 漏洞挖掘】未授权获取AI聊天内容

未经许可,不得转载。 文章目录 两天前,我收到了一项私人项目的邀请,内容看起来像是一个聊天机器人,类似于 Gemini 或 ChatGPT。于是我开始测试该项目的一些业务逻辑漏洞和 IDOR(不当访问控制)漏洞。尽管这个产品拥有一个强大的安全团队,网站上也部署了 WAF(Web 应用防火…

7天掌握SQL - 第一天:数据库基础与SQL入门

目标 在本章节中,我们将学习数据库的基本概念和SQL语言的基础操作,为后续的深入学习打下坚实的基础。 一级目录 数据库基本概念SQL语言基础SQL操作实践推荐资源总结 1. 数据库基本概念 1.1 表(Table) 表是数据库中存储数据的…

vue实现展示并下载后端返回的图片流

// 点击下载 downLoadCode() {const image new Image();image.setAttribute("crossOrigin", "anonymous");image.onload () > {const canvas document.createElement("canvas");canvas.width image.width;canvas.height image.height;c…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-04

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-04 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-04目录1. Alopex: A Computational Framework for Enabling On-Device Function Calls with LLMs摘要:研究背景&…

Python 人脸检测:使用 Dlib 和 OpenCV

简介 本文用Python、Dlib 和 OpenCV 库来检测图像中的人脸,并在人脸上绘制矩形框进行窗口显示。 环境准备 在开始之前,请确保您的计算机上已安装 Python。此外,您还需要安装以下库: dlib:一个包含多种机器学习算法…

JavaScript逆向爬虫教程-------基础篇之JavaScript密码学以及CryptoJS各种常用算法的实现

目录 一、密码学介绍 1.1 为什么要学密码学?1.2 密码学里面学哪一些 二、字符编码三、位运算四、Hex 编码与 Base64 编码 4.1 Hex 编码4.2 Base64 编码 五、消息摘要算法 5.1 简介5.2 JS中的MD5、SHA、HMAC、SM3 六、对称加密算法 6.1 介绍6.2 加密模式和填充方式6.3 CryptoJ…

go语言中的切片含义和用法详解

Go 语言中的切片(slice)是引用类型,它提供了一种灵活的方式去操作一系列具有相同类型的数据。与数组不同,切片的长度不是固定的,可以动态地增长或缩小。切片在 Go 语言中非常常用,因为它们提供了高效且方便…

使用 OpenAI 进行数据探索性分析(EDA)

#探索性数据分析(Exploratory Data Analysis, 简称 EDA)是数据分析中不可或缺的环节,帮助分析师快速了解数据的分布、特征和潜在模式。传统的 EDA 通常需要手动编写代码或使用工具完成。现在,通过 OpenAI 的 GPT-4 模型&#xff0…