unity怎样让玩家在不同材质上行走具有不同脚步声音效

news2024/10/10 2:18:00

问题:
玩家在草地,雪地,木板上行走需要不同的脚步声音效,且无论行走还是奔跑,音效都要和脚步动画同步.
思路:
在动画上添加事件触发脚步声音效,并判断地面的材质然后播放不同的 音效.
实现:
一.判断地面材质
第一种情况 是在unity内置terrain上行走
  地面有草地,石地,木地等,需要有不同音效,这时可以通过terrain的terrain.Data的alphamapTextures[0]得到一个图层,其rgba分别代表四张terrain贴图的权重(或不透明度)利用此可以判断某点是什么材质,再调用相应的音效即可区别玩家在不同材质行走的脚步声.
关键代码;
    public Terrain terrain;
    TerrainData _terrainData;
    void Start()
    {
        _terrainData = terrain.terrainData;
        Texture2D _alphamapTexture = _terrainData.alphamapTextures[0];
        var x = (int)(transform.position.x * _terrainData.alphamapResolution / _terrainData.size.x);
        var z = (int)(transform.position.y * _terrainData.alphamapResolution / _terrainData.size.z);
        var color = _alphamapTexture.GetPixel(x, z);
       //比较一下color各通道值就能知道当前在什么材质上行走了

第二种情况是在某个物体上行走(比如木板上行走 )
  这时可以用向下的射线检测到物体类别并得到材质.
把第一种情况和第二种情况加在一起就能判断所有脚下的材质了.具体可用射线来判断,代码很简单略.....
二.动画事件的设置:
第一种方法(推荐!): 点击动画-->编辑-->预览速读调到最低0.1方便精确找点-->播放预览在所需处停下-->设置事件点,注意函数只能包含在玩家根下的脚本下面.注意:动画如果是legacy格式需要更改,否则不会出现事件编辑界面

c#脚本: 注意函数只能包含在玩家根下的脚本下面

第二种方法: 先复制想添加的动画(否则只能只读)windows-->animation-->animation-->添加事件,代码同上.
需要注意的是事件不要选在最后一帧,很有可能失效,再就是时间参数尽可能选择int,或者hash值.效率可能高些.

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

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

相关文章

【蓝桥杯】历届试题 成绩统计(省赛)Java

【资源限制】 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 【问题描述】 小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。…

计算机网络概念:

CDN:全国各地因为距离,加速响应,也因此可以节省带宽成本.DNS:域名解析器OSI七层模型:应用层:类比填写的数据报文表示层:类比浏览器层会话层:类比cookie或者token记录上次信息传输层:所谓的三次握手和四次挥手发生在这一层,进程到进程网络层:类似于ip通过路由器找到另一ip,服务器…

Web3中文|元宇宙如何更具包容性?

一旦新技术在发展过程中发生意外,受到最大伤害的往往会是边缘化的群体。 打个比方,自动决定内容访问权限和图像阐释方式的算法实际上受到了种族主义和性别歧视的影响。而拥有多种边缘化身份的人通常面临更大的风险。 这就是为什么当我听到马克扎克伯格…

Linux系统Shell脚本第六章:文件三剑客之sed

目录 一、文本三剑客之sed 1、基本用法 2、sed脚本语法及命令 3、sed选项 4、sed的查找替换使用 5、后向引用 6、变量 一、文本三剑客之sed 1、基本用法 sed [选项]... {自身脚本语法};.... [input file...] 举例: seq 5 |sed #生成1-5数字传给sed #该…

配置python虚拟环境配置【Pycharm为例】 2023年2月1日 14点43分

文章目录1. 新建一个项目2. 新建文件,创建项目3. 此时文件结构4. 安装环境样例5. 检查当前环境点击【解释器设置】点击同开头设置环境6. 开始安装根目录下有这个文件点击【终端】7. 激活虚拟环境7.1 如果出现以下错误([参考链接](https://blog.csdn.net/e5pool/arti…

大数据是干什么的,TOOM大数据舆情监测系统数据挖掘

舆情数据挖掘是指从大量的舆情数据中,通过使用数据挖掘、机器学习等技术,对舆情数据进行分析处理,提取有价值的信息,从而得到舆情分析结果。舆情数据挖掘的目的是了解舆论趋势、话题热点、网民情绪等,为决策提供数据支…

PowerBI实用技巧——利用DATEDIFF实现时间进度百分比

需求概述:根据系统默认时间当年1月~当年12月为一年(或指定财年)进行时间百分比进度展示。一、默认正常时间进度实现效果,例如现在系统是2023年2月1日,截止当前年时间已经过去了全年的8.49%.1.解决思路:首先…

【Faster R-CNN】之 backbone 代码精读

1、前言 在上一篇文章 【Faster R-CNN】之 Resize_and_Padding 代码精读 中,我们得到了图像尺寸统一的 batch 了,接下来,就是 feed 到 backbone 中 获取 feature map。 2、backbone 1)这里的 backbone 其实就是 迁移学习&#…

什么是数据治理?

我们这些搞数据治理的人,几乎每天都会说到“数据治理”这个词。但有很多人依然不清楚数据治理的确切含义,也搞不懂数据治理和数据管理的关系。这一节,我们就来认真辨析“数据治理”这个词。首先,我们来看一看国际数据管理协会DAMA…

C语言学习笔记-条件判断

C 判断 判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。 C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 fals…

python基础学习2--模块、面向对象编程

一、模块 在python中,一个.py文件就称之为一个模块(module)。为了避免模块重名冲突,pyton又引入了按目录来组织模块的方法,成为包(package)。 比如mycompany,按照如下目录存放: 引入了包以后,只…

【JavaGuide面试总结】Spring篇·上

【JavaGuide面试总结】Spring篇上1.谈谈自己对于 Spring IoC 的了解2.什么是 Spring Bean?3.将一个类声明为 Bean 的注解有哪些?4.注入 Bean 的注解有哪些?5.Component 和 Bean 的区别是什么?6.Autowired 和 Resource 的区别是什么&#xff…

私服 Nexus

Sonatype公司的一款maven私服产品。 下载地址: https://help.sonatype.com/repomanager3/download 启动命令: nexus.exe /run nexus 访问服务器(默认端口:8081): http://localhost:8081 提示信息有密码所在…

【IoT】红外循迹避障小车

说明 随着生产自动化的发展需要,机器人已经越来越广泛地应用到生产自动化上,随着科学技术的发展,机器人的传感器种类也越来越多,其中红外传感器已经成为自动行走和驾驶的重要部件。 红外的典型应用领域为自主式智能导航系统&…

Unity开发入门吐血反思

年前Team Leader开会时曾说道,以后我们可能都要去参与Unity开发,当时我还兴致勃勃一连提了好几个问题,有没有领路人,文档是否充分等等,毕竟做Android之余多掌握门技术也不错,学到的就是赚到的,技…

倚天剑第一式——爬虫基础

博主简介:博主是一个大二学生,主攻人工智能领域研究。感谢缘分让我们在CSDN相遇,博主致力于在这里分享关于人工智能,C,python,爬虫等方面的知识分享。如果有需要的小伙伴,可以关注博主&#xff…

Docker部署ThingsBoard-Gateway ODBC数据上传(五)

目录 1、linux系统安装Docker 1.docker安装Python 2.安装ODBC包 2、docker安装运行tb-gateway 3、修改config配置文件 4、 安装ODBC驱动程序 5、重启docker 因为需要数据库ODBC数据上传,所以我选择单独部署在远程服务器的docker容器中。其原理大致是这样的&…

在中国市场,OATLY燕麦奶依靠什么成为“标杆品牌”?

在中国新茶饮赛道异常拥挤、新品类层出不穷的局面下,OATLY作为一个来自瑞典的品牌,仅用3年时间,不仅顺利通过国外食品饮料品牌进军中国市场九死一生的惨烈考验,而且凭借其主打产品燕麦奶,成功在中国市场缔造了一个全新…

CameraX + MLKit 打造超简单 OCR 方案

前言 疫情期间隔三差五就要做核酸,随时都要准备身份证给大白扫描识别。写一篇文章聊聊其中用到的技术吧,顺道缅怀这段难忘的经历,希望大家的生活彻底告别的疫情影响,早日回归正常! 身份证扫描主要用到是文字识别技术&…

Java程序设计实验3 | 面向对象(上)

*本文是博主对Java各种实验的再整理与详解,除了代码部分和解析部分,一些题目还增加了拓展部分(⭐)。拓展部分不是实验报告中原有的内容,而是博主本人自己的补充,以方便大家额外学习、参考。 目录 一、实验…