- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试构建一个游戏,您需要在其中躲避掉落的物体。我已经制造了危险,但似乎危险“克隆”的行为有所不同。
我已经制作了一个碰撞脚本,当危险撞击到它需要消失的平台时。这适用于危险对象,但不适用于掉落的危险克隆对象。
提前致谢!
下面是碰撞脚本,下面是危险生成脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HazardCollisionFunctions : MonoBehaviour {
#region Variables
//Public
//Private
#endregion
#region UnityFunctions
void Start()
{
}
void Update()
{
}
#endregion
private void OnCollisionEnter(Collision collision)
{
if(collision.gameObject.tag == "platform")
{
this.gameObject.SetActive(false);
}
if(collision.gameObject.tag == "Player")
{
}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SpawnHazards : MonoBehaviour {
#region Variables
//Public
//Private
[SerializeField]
public float minX = 0.0f;
[SerializeField]
public float maxX = 0.0f;
[SerializeField]
private GameObject[] hazards; //potential array of hazards
[SerializeField]
private float timeBetweenSpawns = 0.0f;
private bool canSpawn = false;
private int amountOfHazardsToSpawn = 0;
private int hazardToSpawn = 0;
#endregion
#region UnityFunctions
public void Start()
{
canSpawn = true; //Temp start
}
public void Update()
{
if(canSpawn == true)
{
StartCoroutine("GenerateHazard");
}
}
#endregion
private IEnumerator GenerateHazard()
{
canSpawn = false;
timeBetweenSpawns = Random.Range(0.5f, 2.0f); //Testing values
amountOfHazardsToSpawn = Random.Range(1, 5); //Testing values
for(int i = 0; i < amountOfHazardsToSpawn; i ++)
{
Vector3 spawnPos = new Vector3(Random.Range(minX, maxX), 8.0f, 0.0f); //Gen spawnpoint for the hazard
Instantiate(hazards[hazardToSpawn], spawnPos, Quaternion.identity); //Spawn the hazard
}
yield return new WaitForSeconds(timeBetweenSpawns);
canSpawn = true;
}
}
最佳答案
OnCollisionEnter
需要 Collision
对象作为参数,它要求附加的 Collider
组件的 isTrigger
属性为 FALSE。
void OnCollisionEnter(Collision collision)
{
foreach (ContactPoint contact in collision.contacts)
{
Debug.DrawRay(contact.point, contact.normal, Color.white);
}
}
OnTriggerEnter
需要 Collider
对象作为参数,它要求附加的 Collider
组件的 isTrigger
属性为 TRUE。
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("CheckPoint"))
{
Destroy(other.gameObject);
}
}
If you are instantiating the object from
prefab
, make sure thatprefab
have required components (rigidbody
/collider
) and properties to achieve the desired behaviour.To detect Collision/Trigger, at least one of the object must have a physics component (
Rigidbody
)Rigidbody MUST be attached to the moving object.
希望这有帮助:)
关于c# - OnCollisionEnter 不工作 Unity3D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47752522/
我试图让游戏在碰撞时进入死亡场景,但不起作用。它甚至没有检测到碰撞。 我已将脚本附加到空游戏对象上,该对象具有已勾选触发器的盒式碰撞器,并且玩家确实也有刚体。 我不确定哪里出了问题,请帮忙。 usin
我的场景中有一个立方体(玩家)和一个平面(地板)。两者都有 Colliders 附加到它们并且有一个 RigidBody 组件只附加到 Cube。 立方体位于平面之上。 Cube 附加了一个脚本,用于
这个问题在这里已经有了答案: Collision callback function not called (1 个回答) 关闭 5 年前。 我想要发生的是,当你遇到一个立方体时,游戏会重置,但这是
我正在尝试构建一个游戏,您需要在其中躲避掉落的物体。我已经制造了危险,但似乎危险“克隆”的行为有所不同。 我已经制作了一个碰撞脚本,当危险撞击到它需要消失的平台时。这适用于危险对象,但不适用于掉落的危
Unity 3d 中是否有检测碰撞发生次数的方法? 比如3次则杀敌。 或者如果两次则将生命周期减少 50%。 我想用 void OnCollisionEnter 函数来做到这一点.. 这是我的 AI
我是 c# 和 Unity 的新手,我有一个问题。我无法理解 OnCollisionEnter 的基本工作原理。 比如,如果我有一个地形和一个悬停在它上面的球体,它有刚体组件,我写:- void On
我的游戏对象附加了 Rigidbody2D 和 2D 碰撞体。有没有办法检查我的任何两个对象之间是否发生碰撞?我找到了一种方法:方法 OnCollisionEnter(),但我想在特定时间检查特定对象
我正在尝试制作一款平台游戏,我想在 x 秒后禁用平台重力。但是它给出了一个编译错误,它不能被使用,因为 void 不是内部接口(interface)类型。 private void OnCollisi
我检查了几乎所有的答案,但这些大多是简单的错误和失误。我的问题是即使与其他刚体发生碰撞也不会调用 OnCollisionEnter。 这里是没有被调用的部分: void OnCollisionEnt
我有一个带有网格碰撞器的对象和一个带有球体碰撞器的预制件。如果两者发生碰撞,我希望预制件的实例被销毁。 我在脚本中写了以下内容: private void OnCollisionEnter(Colli
嗨,我使用 Unity 一段时间了,但我仍然无法区分 OnCollisionStay 和 OnCollisionEnter 之间的区别。我假设当刚体(如球)与另一个刚体/碰撞体(如墙壁)接触时调用 O
我有一个角色,它有一个 bool 标志,决定他是否正在跳跃(如果他正在跳跃,他就不能再跳跃)。当他跳跃时,跳跃标志设置为 true,当他与某物碰撞时,跳跃标志设置回 false(这样他就可以再次跳跃)
我有一个 void OnCollisionEnter(Collision other) 和 void OnMouseUp(),但我希望它是这样的,如果我松开鼠标,那么碰撞应该是检查。所以我想要另一个函
我试图让我的玩家在场景中点亮火把,但不太确定如何做到这一点。 我有一个带有粒子系统的手电筒预制件。每次玩家的 torch 与未点燃的 torch 相撞时,我都希望该 torch 开始燃烧。 我一直在努
我正在尝试使用跳跃 Action 与其他几个游戏对象进行交互。在非常简单的层面上,我有一个需要与之交互的多维数据集。为此,我写了一个脚本 - using UnityEngine; using Syst
我是一名优秀的程序员,十分优秀!