问题标签 [unity2d]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 2D 多边形碰撞器不会与 2d 多边形碰撞器发生碰撞
我正在开发一款游戏,而我刚刚开始。我在地图中添加了一个 png,并且一直在我想要无法通过的区域周围添加对撞机(它是一个 2D 平台游戏)。我已经设计了一个敌人,并在它四处移动时添加了一个 2DRigidBody 组件,并开始使用 2DBoxColliders 作为关卡的碰撞器,以及我编写的脚本:
意味着敌人会撞到墙的一侧,然后旋转并开始向另一条路走。我意识到我的地图的大小使用多个 2DBoxColliders(当我说多个时,我的意思是我可能不得不使用超过一百个)是一种非常糟糕的方法。我现在也开始在地图上使用 2DpolygonCollider,但现在敌人不会与墙壁的侧面发生碰撞并转身,它只是保持朝向同一个方向但不会移动。有谁知道为什么?
c# - Unity2D错误?还是我缺少什么?
我在使用 Unity 函数“OnMouseUp”时遇到严重问题(也尝试使用 OnMouseDown 和其他函数)
我遇到的问题是该功能对点击没有反应,但在何时起作用和何时不起作用时不一致。有时关闭统一并再次打开它会使其工作,有时则不会。
代码相当简单:
此脚本被添加到具有以下特征的游戏对象中
到目前为止,我认为我的端存在一些问题并且我做错了,但经过一些测试,我认为它更像是一个 Unity Bug,而不是我。
这方面的一个例子是有时它会起作用,有时它不会(在游戏中的相同坐标上)
另一个例子是,如果游戏对象预制件在启动游戏时选择了“已触发”,并且在单击带有 OnMouseUp 脚本的游戏对象之前,我取消选择它,它神奇地工作。如果然后我更改我的预制框“已触发”并以此启动游戏,它将无法正常工作。另一方面,如果我在游戏运行时再次选择“已触发”,它将再次起作用。
我的理论是,由于某种原因,在游戏运行时更改属性“已触发”时,它会以某种方式刷新它并允许代码运行。
我在网上做了一些研究,看看我做错了什么,但找不到任何东西。如果有人知道我的问题是什么,将不胜感激,如果这是一个错误,还有其他方法可以达到相同的结果吗?
c# - Unity - 单击一个对象会激活其他对象
我正在尝试创建一个扫雷+答题器/空闲游戏以进行练习。目前,我无法让点击正常工作。我通过代码生成了所有对象,这意味着它们都是相同的预制件,但位于不同的位置。当我单击它们时,所有这些代码都将激活,并且所有图块都变为打开状态。我不确定我是否在这里使用了错误的点击功能,因为我知道还有一个OnMouseDown()
功能,Input.GetMouseButtonDown(0)
但唯一激活代码的功能是在第二个功能中。
那是我的点击检测。虽然它确实检测到点击,但正如我之前所说,它会检测所有磁贴并激活它们。我只希望它在其中一个上激活。我已经看过 RayCasting 的东西,但我真的需要更多关于它是如何工作的解释(如果这是解决方案的话)。
unity5 - 碰撞后的意外轨迹
我目前正在尝试在 Unity 中开发类似 arkanoid 的游戏,但我遇到了一个问题,我似乎无法通过令人满意的解决方案来解决。
当球撞击两个相邻砖块的边缘时,它会以一种意想不到的方式“反映”速度:球会朝它来的方向移动。
作为信息,我的世界空间大小为:5.625x,每块砖的大小为 0.703125,每行 8 个砖。此外,每个砖块都具有相同的对撞机 Y 尺寸。
我尝试将对撞机的 x 大小增加到某个合理的程度(例如 0.74x)以确保两块砖之间没有间隙,但有时问题仍然存在。
这是一张非常丑陋的图片,说明了正在发生的事情(绿色箭头是预期的轨迹):
在此先感谢您的帮助!
编辑:这里是关于球和砖的检查员信息。关于砖块的线条,它基本上是八个游戏对象,带有一个 boxcollider2d 和一个运动学刚体 2d。
unity2d - UNITY 2d - 我可以在播放器脚本中引用动画师的参数吗?
如果玩家不移动,我正在尝试将动画师的 bool Walking参数设置为 false。
我已经有一个名为 Speed 的参数,它很有效,而且它只是积极的,所以我想说这样的话:
if (speed == 0) {anim.SetBool("Walking", false); } //其中速度是动画师中的一个参数
else { anim.SetBool("Walking", true); }
我可以做类似的事情吗?
谢谢