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

这篇具有很好参考价值的文章主要介绍了unity怎样让玩家在不同材质上行走具有不同脚步声音效。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

unity怎样让玩家在不同材质上行走具有不同脚步声音效
问题:
玩家在草地,雪地,木板上行走需要不同的脚步声音效,且无论行走还是奔跑,音效都要和脚步动画同步.
思路:
在动画上添加事件触发脚步声音效,并判断地面的材质然后播放不同的 音效.
实现:
一.判断地面材质
第一种情况 是在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格式需要更改,否则不会出现事件编辑界面
unity怎样让玩家在不同材质上行走具有不同脚步声音效
c#脚本: 注意函数只能包含在玩家根下的脚本下面
unity怎样让玩家在不同材质上行走具有不同脚步声音效
第二种方法: 先复制想添加的动画(否则只能只读)windows-->animation-->animation-->添加事件,代码同上.
unity怎样让玩家在不同材质上行走具有不同脚步声音效
需要注意的是事件不要选在最后一帧,很有可能失效,再就是时间参数尽可能选择int,或者hash值.效率可能高些.

文章来源地址https://www.toymoban.com/news/detail-428728.html

到了这里,关于unity怎样让玩家在不同材质上行走具有不同脚步声音效的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 高效出报表的工具有哪些?奥威BI报表工具怎样?

    随着企业精细化数据分析的展开,数据分析报表的制作压力也随之增加。对企业而言,拥有一个高效出报表的工具十分重要。高效出报表的工具有哪些?奥威BI报表工具的效率够不够高? 高效出报表的工具有很多,奥威BI报表工具就是其中一款。 奥威BI报表工具:三大功能提

    2024年02月17日
    浏览(39)
  • 超详细,unity如何制作人物行走的遥杆?

    在游戏中,移动遥杆是一种常见的用户界面元素,它允许玩家通过触摸或鼠标输入来控制游戏对象的移动。移动遥杆通常由一个圆形或方形的背景和一个可以拖动的小球(称为拇指杆)组成。玩家可以通过拖动拇指杆来控制游戏对象的移动方向和速度。 以下是对GameTouch脚本每

    2024年02月05日
    浏览(28)
  • unity如何创建一个角色(实现角色的行走、奔跑)

    1、首先从资源商店下载导入一个模型,这里选择的是下面这个模型(用了很多,这个比较好用,还是免费的),下载后导入模型。  2、创建一个平面,打开刚才导入的模型的预制体,把角色拖到场景中并命名为Player,打开的文件目录如下  3、创建一个角色控制器(右键-Cr

    2024年02月11日
    浏览(39)
  • unity人物基础动画应用。行走、待机之类的简单动画切换。

    @[TOC]unity人物基础动画应用 直接将项目拖入资源层级就好。这里推荐一个网站,可以给导入网站的模型自动绑骨,并且可挑选动画下载。网站自身也带有很多模型可以直接下载。免费又好用,就是可能网有点慢。 链接: link 1)在项目管理器中右键-创建-动画控制器。双击新建的

    2024年02月08日
    浏览(43)
  • 【Unity】简单案例脚本实现 | 鼠标观察/键盘控制移动飞行/行走/碰撞检测

    《Unity5实战-使用C#和Unity开发多平台游戏》第二章-构建一个让你置身3D空间的演示 鼠标观察/键盘控制移动飞行/行走/碰撞检测 Unity版本:2019.4.23f1c1 注意脚本名称和组件添加,不在文章中一一强调 场景模型都是在资源商店选择的免费下载(选择Sort by Price(Low to High)排序)搜索

    2024年02月04日
    浏览(43)
  • Unity中玩家的攻击(发射子弹,挥剑)

    目前来说,我就知道玩家两种攻击方式,1.发射(子弹,弓箭),2.挥剑 1.发射子弹 想要玩家发射子弹,需要制作两个部分(玩家发射动画除外),第一个部分就是控制玩家的脚本,第二部分则是子弹部分,子弹部分需要将子弹做成预制件的形式。 制作思路:1.首先先把子弹

    2023年04月09日
    浏览(24)
  • 【Unity】两种方式实现弹跳平台/反弹玩家(玩家触发与物体自身触发事件实现蹦床的物理效果)

    只实现物理反弹的效果,不实现蹦床会有的视觉拉伸效果,请自行找相关代码 经过我的实践,我发现要想实现一个平台反弹的效果,要么就选择给player添加一个物理材质(平台加了没用), 但是这样会造成一个问题,如果我们要弄一个3d控制器的游戏,那么没理由让玩家什么

    2024年02月07日
    浏览(25)
  • 在 Unity 中存储和查找玩家数据指南

    Unity,可以创造精彩的游戏。但为了使游戏真正具有交互性和动态性,你需要知道如何在运行时存储和查找玩家数据。我将使用易于理解的示例来探索在 Unity 中管理数据的各种方法。 由于多种原因,在 Unity 游戏中存储数据至关重要。它允许: 保存并加载玩家进度。 存储高分

    2024年04月12日
    浏览(25)
  • unity实现玩家碰触物体打开提示效果

    玩家进入触碰某个物体,物体便会弹出提示框一个小效果。这个效果是在一个小demo里做的,需要多处使用,于是做成了单例。 两个部分,一个是物体的提示框,一个是玩家。当然玩家是提前做好的。 首先提示框关于脚本的部分。 (1)声明并获取,老样子,初始化时不可见

    2024年02月07日
    浏览(46)
  • unity控制摄像机跟随玩家三种办法

    将相机拖到人物的游戏对象上,也就是让相机成为角色的子物体,这样相机就会跟随角色移动 但是这样会存在问题 1.相机会随着人物的翻转而翻转 2.相机跟随人物没有缓冲效果,移动比较僵硬 代码方式控制相机跟随人物移动,利用Lerp函数控制相机 1.在Unity中创建一个脚本F

    2024年02月16日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包