问题标签 [unity3d-2dtools]

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.

0 投票
3 回答
162 浏览

c# - 切换场景后,隐藏对象不再隐藏

我是 Unity 和 C# 的新手,所以请多多包涵。我有几个场景,玩家可以随意移动,其中一个有我想在鼠标点击时隐藏的图像对象。现在,我已经将一个脚本添加到一个我renderer.enabled = false;用来隐藏它的图像对象中。当玩家回到那个场景时,它就不再隐藏了。这样做的正确方法是什么?

//--------已编辑部分------------ 现在可以工作了:)

0 投票
1 回答
986 浏览

c# - 玩家死亡动画完成后停止背景滚动

嗨,我正在创建一个 2D 无尽的跑步者。背景有2个动画 - 滚动和停止滚动当角色碰撞和死亡时我想做以下

  1. 启用死亡动画 - 这正在发生
  2. 停止计时器 - 如果我这样做,所有动画都会停止
  3. 停止背景滚动 - 虽然它发生在死亡动画完成之前并跳回第一帧,但这种情况正在发生。我希望背景相对于角色死亡的地方停止。
  4. 销毁角色 - 这正在发生,但在动画完成之前。我想我需要使用协程但不知道怎么做?

请帮忙!

这是我建议的更新代码

背景动画 我复制了一个背景精灵并将它们并排对齐。RHS sprite 是层次结构中 LHS sprite 的子代。然后我点击 LHS bg sprite -> windows->Animation。使用添加曲线在 X 轴上变换背景,使其无限移动。

0 投票
3 回答
1217 浏览

c# - 在运行时添加 GameObject

这似乎是一个愚蠢的问题,但我坚持下去。我在列表 ( List<GameObject>) 中有 GameObjects,我想将它们添加到场景运行时,最好是在预定义的位置(如占位符或其他东西)。什么是这样做的好方法?我一直在网上搜索,但找不到任何可以解决这个问题的方法。到目前为止,这是我的代码:

如何将图片 (5) 放置在预定义的位置?

编辑:现在我可以将 1 个图像放置到占位符(透明 png)。由于某种原因,z 值无处不在,因此需要强制为 -1f,但这没关系。我将其他场景的图像添加到列表中,其中可以有 1-5 个。我需要将占位符放在另一个列表或数组中吗?我在这里有点迷路了。

0 投票
1 回答
6505 浏览

unity3d - 避免在刚体之间推动

我的 2D 游戏统一(口袋妖怪风格)有问题,我transform.position用来移动游戏对象。

我有一个玩家和跟随他的敌人,一切都很好。但是当敌人发生碰撞时,他们开始互相推挤

当敌人和玩家发生碰撞时,我需要没有人被推。

  • 我尝试在敌人中使用运动学,但玩家可以推动它们。
  • 我试图给玩家增加大量的质量,但他可以推开敌人。
  • 我试图用 检测代码中的碰撞OnCollision,但是当我取消敌人的移动时,它们不会返回移动。

- - 更新 - -

我需要碰撞,但没有在它们之间推动,这是一个说明问题的视频 https://www.youtube.com/watch?v=VkgnV1NOxlw

仅作记录,我在这里使用 A* 寻路脚本 ( http://arongranberg.com/astar/ ) 我的敌人移动脚本。

- - 更新 - -

最后我会得到预期的结果,当目标接近并停止它时,将rigidbody2D.isKinematic 属性更改为true

这是一个视频https://www.youtube.com/watch?v=0Zm0idUU75s

和敌人的移动代码

0 投票
1 回答
229 浏览

unity3d - 检查游戏对象是否在其他两个游戏对象之间传递

我有一个统一的三个游戏对象(前锋)让我们说红色,绿色和蓝色。

当我对绿色物体施加重力时,我想检查它是否在红色和蓝色之间传递?我对红色对象施加力我还想检查它是否在绿色和蓝色之间传递

是否有任何线对撞机或类似的东西?

下面我还附上了我想要实现的图像在此处输入图像描述

0 投票
0 回答
94 浏览

c# - 如何获得与 rightHorizo​​ntalBound 相同类型的游戏对象?所以我可以比较他们的价值观?

我有gameobject charTransform = GameObject.FindGameObjectWithTag ("Character");

而且我正在使用代码获得世界边界 rightHorizontalBound = camera.ViewportToWorldPoint (new Vector3 (1,0, camera.nearClipPlane)).x;

问题:如何获得与游戏对象相同的类型rightHorizontalBound?所以我可以比较他们的价值观?

所有不好的事情都发生在if(charTransform1.position.x >= rightHorizontalBound),因为charTransform1.position.x不是一个 WorldPoint 作为一个rightHorizontalBound

需要我主持的功能,所以字符不能通过右边框,这里是代码

0 投票
3 回答
10897 浏览

unity3d - 多个对撞机的推荐方法

我对这可能是一件非常愚蠢的事情感到有些困难。我有一个敌人的游戏对象,这取决于它被击中的位置(碰撞)——要么是它,要么是游戏死亡。我认为描述这一点的最简单方法是以经典的《超级马里奥兄弟》游戏为例。

众所周知,如果玩家撞到敌人 - 玩家将失败 - 除非他跳到敌人的头顶上,在这种情况下敌人应该死。

有对撞机的敌人

我最初的想法是在游戏对象上创建两个对撞机:

  1. 蓝色边框代表 BoxCollider2D - 如果与 - 发生碰撞 - 将导致玩家输掉(注意它从顶部稍低)
  2. 绿色边框代表子游戏对象上的 BoxCollider2D - 如果与之发生碰撞 - 将导致游戏对象死亡。

以下是我使用的代码的简化版本:

这种方法有效,但是在与Collider #1碰撞后的瞬间,Collider #2也会触发 - 当敌人被摧毁时,玩家也会失败。

我一直在使用 RigidBody2D 值来防止玩家在从顶部击中敌人时进入第二个对撞机 - 但显然以这种力量/速度,对撞机可能有点不准确(或者也许我只是做错了? )。

我已经研究了 RayCast,但这对于我看起来相当微不足道的东西来说似乎太复杂了(在玩家的所有四个侧面和四个顶点上投射光线 - 假设玩家有一个盒子对撞机)。

我“暂时”使用的是一个单一的对撞机,里面有一段我不满意的简单代码,而且并不总是有效:

我目前在 2D 模式下工作,但也将考虑 3D 模式的解决方案(虽然可能比我的问题所需要的更复杂)。

多谢你们。

0 投票
1 回答
266 浏览

c# - C# 脚本枚举

  • 做什么的(int)?这行代码有什么作用:
  • SimonLightPlate[] lightPlates = new SimonLightPlate[(int)SimonLightPlate.eType.NUM_TYPES];? 这是做什么的:lightPlates[(int)SimonLightPlate.eType.BLUE] = new SimonLightPlate("BluePlane");
  • 公众也会GameObject plate;怎么做?
0 投票
1 回答
483 浏览

animation - 2d sprite animator,需要叠加 sprite 立即过渡

我正在为 2d 游戏制作动画,而我想做的事情相当简单。我有一些手绘的精灵表,其中包含攻击、空闲、运行、死亡等逐帧动画,其中每个动画大约有 8-10 张图纸。

现在这一切都完美无缺,并且它们已编写脚本并且完全按照我想要的方式工作。我的问题是,现在我想通过在原始精灵的顶部叠加,比如一把剑来为我的角色添加自定义。所以我在游戏对象中添加了一把剑,并逐帧设置动画,以便它完美匹配每一帧中的正确位置。通过在所有帧上拖动红线(动画),我可以获得想要的结果。然而,当我按下“播放”键时,剑不会从一个位置快速切换到下一个位置,而是从一个位置平滑过渡到下一个位置,露出下面的原始精灵并完全破坏动画。

如何使覆盖(剑)立即过渡,或从一个位置/旋转x,y,z“捕捉”到下一个位置/旋转x,y,z?

我尝试过的事情:

=使叠加层的所有曲线“剑”(两条切线:恒定)然而,这只是使“曲线”恒定,因此当然不起作用

=我尝试阅读http://docs.unity3d.com/Manual/EditingCurves.html但我想到的唯一技巧就是添加键并手动执行所有键,但不能在帧之间添加键在框架上,所以我什至无法以这种方式破解它。

= https://www.youtube.com/watch?v=HM17mAmLd7k尝试跟随这个视频并以这种方式制作我的整个角色,虽然这确实有损“手绘”动画,并让我有一种我不喜欢的风格不太喜欢。

如果我想以这种方式制作动画,我不知道该怎么做,我不确定这是否可能,但如果不是,我不明白为什么,因为这是获得复杂 2d 动画的好方法非常容易定制。

ps:这些不是状态,我知道如何在实际动画师中的状态之间立即转换。

非常感谢,我在这里的第一个问题希望这不是愚蠢的,但在来到这里之前我真的尝试了很多,用了很多小时的谷歌搜索当然无济于事。

0 投票
1 回答
40 浏览

unity3d - 添加播放器控件时,重力会发生巨大变化

因此,如果当我添加我的刚体 2D 时,重力会像往常一样工作。我的玩家精灵掉下来了,向下的速度增加了。一旦我添加了一些非常简单的播放器控件,它似乎几乎被限制了?如果没有我的播放器控制脚本,将重力提升到 50 之类的感觉仍然与重力 = 1(默认设置)不同。这是我的代码。