首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Unity3D:在Physics2D.IgnoreLayerCollision()之后重新计算冲突?

我把我的“播放器”gameObject放在一个平台上。他按下组合键,我验证他是否站在正确的平台上,然后运行以下代码:

代码语言:javascript
运行
AI代码解释
复制
Physics2D.IgnoreLayerCollision(playerLayer, plataformLayer);

目的是让他从站台上掉下来。相反,不会立即发生任何事情。玩家仍然在平台的顶部,可以四处走动-只有当他离开平台并试图回到平台上时,才会从平台上掉下来。

所以我做了一个临时的丑陋的变通方法:

代码语言:javascript
运行
AI代码解释
复制
Physics2D.IgnoreLayerCollision(playerLayer, plataformLayer);
rigidbody2D.AddForce(transform.up * jump / 1.5f);

这将迫使玩家跳跃,使Unity“重新计算”碰撞,玩家将,如我所愿,通过平台。更奇怪的是:如果跳跃的高度不够高(质量为1,重力等级为0.5的100力似乎是最小的),玩家仍然会降落在平台上,即使Unity应该忽略这些碰撞。

我也试着向下推玩家,无论是用力还是直接速度,但没有运气-他仍然与平台相撞,他只是在离开平台一次后才停止碰撞。

此外,我的播放器Rigidbody2D检测模式被设置为连续,我尝试了许多不同的方式来设置平台,无论有没有Rigidbody2D。

有什么办法让玩家在碰撞开始被忽略时立即从平台上掉下来吗?提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2014-05-12 04:46:07

我也遇到了同样的问题。我有一个替代的解决方案,你可能会找到你喜欢的。

暂时将播放器gameObject的rigidbody2D设置为运动学,而不是禁用或移动要忽略的地形。这不会让你像你想要的那样在平台上“掉下来”--但它会让你产生一种错觉,通过简单的使用transform.Translate (或者Vector3.Lerp,如果你喜欢)来通过代码向下移动你的角色。这将禁用Rigidbody2D.AddForce,但仍允许通过rigibdody2D.velocity进行设置移动,前提是这比直接操作变换更可取。

确保向下速度只持续到你是运动学的时候,并尝试让它与你游戏的重力相匹配,它看起来非常无缝。如果你太快地打开刚体,它仍然可以(即使使用ignoreLayers :/ )跳回到平台上-但如果你让它开得太长,你可能会掉到多个预期的单向平台上,甚至:O穿过舞台的底部!如果你能小心,这是很容易避免的--就我个人而言,我使用了两个MonoBehaviour.Invoke设置了一个非常短的时间限制,玩家将保持运动学的时间(大约0.5秒),我禁用了运动学,只要他们从'hopDown‘的启动点移动了0.5个单位。如果你的重力/平台/角色比例与我的有很大不同,你可能需要尝试一些不同的数字。

这是我第一次尝试回答关于stackoverflow的问题,所以我希望它对我有所帮助!

票数 1
EN

Stack Overflow用户

发布于 2014-09-23 17:35:07

一种简单的方法是在调用

代码语言:javascript
运行
AI代码解释
复制
Physics2D.IgnoreLayerCollision(playerLayer, plataformLayer);

重置播放器的层:

代码语言:javascript
运行
AI代码解释
复制
player.gameObject.layer = playerLayer;
票数 1
EN

Stack Overflow用户

发布于 2014-03-03 17:12:37

听起来你在来这里之前已经涵盖了一大堆可能的解决方案,所以,干得好。我在下面列出了一些可供选择的想法。我希望他们能帮上忙。祝好运!

  • 将碰撞对象从平台本身移除。
  • 将碰撞对象偏移到某个远程位置,以便它不会与播放器交互。偏移对象可能会导致碰撞产生与您提到的跳跃类似的反应。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22148925

复制
相关文章
springboot2.6.x之后版本和swagger冲突问题
如果错误和我的差不多,那就没问题了,来解决吧。 解决方法: springboot2.6.x的版本中springmvc默认路径匹配策略从ANT_PATH_MATCHER改成PATH_PATTERN_PARSER所以就有错误了,解决方法就是在配置文件中改成ANT_PATH_MATCHER模式 我的是yml文件
知识浅谈
2022/04/13
6830
关于spark streaming重新编译之后部署异常
使用spark streaming开发的人员都知道,它的容错机制是通过checkpoint来实现的,但是checkpoint有一个问题,就是当线上在运行一个spark streaming那么这时候你在编译一下(平时也难免不了对代码进行修改编译),再次发布的时候就会报checkpoint反序列化异常的errors。
用户5252199
2022/04/18
3150
在提升和转换之后优化云计算效率的10个步骤
云计算基础设施被证明对大多数企业来说是高效的,同时还可以通过对基础设施进行不断的改进来进一步优化其云计算效率。本文介绍了如何通过10个更注重性能的步骤来优化云计算基础设施。
静一
2021/10/13
7100
研究表明云计算开支在2021年之后可能持续增长
Gartner公司预测,到2021年,全球公共云最终用户支出将增长18.4%,预计其支出规模将达到3049亿美元。
静一
2020/12/02
4920
如果重新学计算机
最近的工作中,每天都在频繁地操作服务器。一个月前,还不是很熟悉Linux命令,只是知道常用的一些查询和操作,但是被工作硬逼着去处理事情,慢慢地,熟悉了很多,但还是远远达不到合格的要求。有天晚上躺在床上的时候,突然就想到,如果有机会重新学习计算机,那我会怎么做呢?
价投小邱
2022/08/25
3230
如果重新学计算机
净重新分类指数NRI计算
NRI,net reclassification index,净重新分类指数,是用来比较模型准确度的,这个概念有点难理解,但是非常重要,在临床研究中非常常见,是评价模型的一大利器!
医学和生信笔记
2022/11/15
1.3K0
净重新分类指数NRI计算
用pycharm提交代码,冲突之后文件丢失找回方法
1: 更新代码时, 监测到本地代码改变,需要和合并,重启之后才可以, 选择No同时,代码会被冲掉,新增加的文件也会被冲掉, 但是pycharm有一个文件历史记忆,找到之后可以找到丢失的文件。
Wyc
2018/09/11
1.6K0
用pycharm提交代码,冲突之后文件丢失找回方法
今天来重新认识云计算
“云计算”这个词,相信大家都非常熟悉了。经过十多年发展,云计算已经成为不可阻挡的技术潮流,逐渐深入到各行各业,不同规模的组织中,帮助用户以更低运营成本获得完善高效的 IT 服务。
边缘计算
2019/07/03
1.6K0
今天来重新认识云计算
云计算领域将如何重新洗牌
假如云计算提供商把精力集中在最底层,而其他(纯软件)提供商专注于上面的一层,又会如何呢?
深度学习与Python
2022/01/18
7500
云计算领域将如何重新洗牌
在Unity3d中如何使用MVC框架(Unity3D)
  大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧。
恬静的小魔龙
2022/08/07
2.2K0
在Unity3d中如何使用MVC框架(Unity3D)
python计算N天之后的日期
python计算N天之后的日期,可以自己写成一个函数,想得到几天后的日期都行 #! /usr/bin/env python coding=utf-8 import time import datetime d1 = datetime.datetime.now() d3 = d1 + datetime.timedelta(days =10) print str(d3) print d3.ctime() </pre>
用户7999227
2021/11/01
1K0
java计算某日期之后的日期
public static void main(String[] args) { // 时间表示格式可以改变,yyyyMMdd需要写例如20160523这种形式的时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); String str = "2016/05/23"; // 将字符串的日期转为Date类型,ParsePosition(0)表示从第一个字符开始解析
HUC思梦
2020/09/03
2K0
围绕区块链重新思考云计算
区块链有望成为当今高度集中的云计算行业的一个关键颠覆技术。如今,全球各地的初创公司都在围绕区块链重新思考云计算,并表明这是一种从根本上分散托管、管理以及访问计算、存储和其他资源的新方法。
静一
2018/08/20
9930
围绕区块链重新思考云计算
python计算N天之后的日期
python计算N天之后的日期,可以自己写成一个函数,想得到几天后的日期都行 #! /usr/bin/env python coding=utf-8 import time import datetime d1 = datetime.datetime.now() d3 = d1 + datetime.timedelta(days =10) print str(d3) print d3.ctime() </pre>
大师级码师
2021/11/03
9770
今天来重新认识雾计算
雾计算(Fog Computing)是云计算(Cloud Computing)的延伸概念,主要用于管理来自传感器和边缘设备的数据,将数据、(数据)处理和应用程序集中在网络边缘的设备中,而不是全部保存在云端数据中心。在终端设备和云端数据中心之间再加一层“雾”,即网络边缘层,比如再加一个带有存储器的小服务器或路由器,把一些并不需要放到云端的数据在这一层直接处理和存储,可以大大减少云端的计算和存储压力,提高效率,提升传输速率,减低时延。
边缘计算
2019/07/03
1.2K0
今天来重新认识雾计算
unity3d:ugui滚动层滑动与item点击事件的冲突处理
立羽
2023/08/24
4180
Android项目实战(三十九):Android集成Unity3D项目(图文详解)
需求:   Unity3D 一般用于做游戏 而且是跨平台的。原本设计是Android 应用端A(原生开发)进行一些业务处理,最后由A 打开Android 应用端B(Unity3D 游戏开发)进行游戏操作。 这样导致的问题:    1、A应用打开B应用 , 数据之间的传递不方便   2、正常关闭,异常关闭的交互及技术上处理麻烦   3、版本迭代,需要分开考虑   4、体验差   5. ......................   最终要合并成一个Android应用 , 提高用户体验。 实现思路即 A
听着music睡
2018/06/25
1.7K2
Android项目实战(三十九):Android集成Unity3D项目(图文详解)
需求:   Unity3D 一般用于做游戏 而且是跨平台的。原本设计是Android 应用端A(原生开发)进行一些业务处理,最后由A 打开Android 应用端B(Unity3D 游戏开发)进行游戏操作。 这样导致的问题:    1、A应用打开B应用 , 数据之间的传递不方便   2、正常关闭,异常关闭的交互及技术上处理麻烦   3、版本迭代,需要分开考虑   4、体验差   5. ......................   最终要合并成一个Android应用 , 提高用户体验。 实现思路即 A
听着music睡
2018/05/18
1.2K0
实习申请被Apple Music拒了之后,我重新设计它
Jason Yuan,美国西北大学一名大学生,今年早些时候申请了Apple Music平面设计实习生。被拒后,花费了近3个月时间,重新设计了Apple Music。本文记录了设计思路与过程,并就Apple Music存在的一些问题提出了自己的解决方案,也表达了自己对软件未来发展的想法。 作者注:援引这个案例意在说明我重新设计Apple Music的用意并非源于愤怒或怨恨。 今年早些时候,我申请了Apple Music的平面设计实习生职位,虽然面试后被刷下来了,不过这可是一生仅此一次的机会。拒绝邮件也很友好—
CSDN技术头条
2018/02/12
1.5K0
实习申请被Apple Music拒了之后,我重新设计它
最小依赖图重新计算值算法
大家好呀,好久没有写正式的文章了,有点生疏了。最近完成了一个库的PoC,在最近一期的《Robust》 https://www.tangshuang.net/8196.html 里面也有介绍到,你有听最近一期的《Robust》吗?这个库叫sfcjs,sfc即single file component的缩写,你写过vue的话,肯定知道vue的.vue后缀文件的写法,对的,就是这个家伙。
否子戈
2021/09/24
1.2K1

相似问题

Unity3D按需冲突

10

在访问计算属性之后立即重新生成表。

26

ComputedObservables在ko.mapping.fromJS之后没有重新计算

11

Unity3d Android主活动冲突,编辑和重新编译jar

13

Unity3D 5包冲突

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档