- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
if (colliderBox.isTouching (col) && col.CompareTag("barrier")) {
score++;
this.GetComponent<Renderer> ().material.color = col.GetComponent<Renderer> ().material.color;
}
if (spriteBox.IsTouching(col) && col.CompareTag("barrier") ) {
Debug.Log (col);
Debug.Log (colliderBox);
SceneManager.LoadScene (mainMenu);
}
目前在我的代码中,我正在使用 onTriggerEnter 来检测与名为“barrier”的对象的碰撞,但我不得不用 3D 对象替换我的 2d spriteBox 和 2d colliderBox,现在 isTouching 不是3D 碰撞器。我找不到简单的替代品。我可以用什么代替它们?
最佳答案
没有用于 3D 碰撞的 isTouching
函数的等效版本,但您可以推出自己的版本。当 OnTriggerEnter
时,存储集合中涉及的两个碰撞器。当调用 OnTriggerExit
时,检查涉及的两个碰撞器,如果已经退出集合,则将它们从集合中移除。这就是我在 this 中所做的使用 CollisionDetection
脚本发布。
将 CollisionDetection
脚本附加到将发生碰撞的对象上。
要检查 Collider
是否正在接触另一个 Collider
,请更改:
if (colliderBox.isTouching (col) && col.CompareTag("barrier")) { }
到:
if (CollisionDetection.IsTouching (colliderBox.gameObject, col.gameObject) && col.CompareTag("barrier")) { }
您还可以为 CollisionDetection 类添加 ExtensionMethod:
public static class ExtensionMethod
{
public static bool IsTouching(this Collider collider, Collider otherCollider)
{
return CollisionDetection.IsTouching(collider.gameObject, otherCollider.gameObject);
}
public static bool IsTouching(this GameObject collider, GameObject otherCollider)
{
return CollisionDetection.IsTouching(collider, otherCollider);
}
}
现在,假设 colliderBox
是一种Collider
或 GameObject
。
关于c# - Collider.isTouching 用于 3D 碰撞器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53453014/
我有这段代码可以在玩家触摸敌人时消灭它: 当碰撞器将 isTrigger 设置为 false 时,它会起作用。我已经阅读了文档,我认为这是因为它使用物理引擎来检查玩家是否正在触摸。 有没有一种简单
任何人都可以给我任何提示,为什么我的播放器不移动?它开始移动直到player.dat被保存然后它只是有点轻推并返回到原始位置 public class Player implements Serial
我需要检测何时触摸屏幕。 onTouchEvent 方法仅检测手指何时移动。我需要一个方法,当手指触摸屏幕时返回 boolean 值 true,当手指不触摸屏幕时返回 false。 最佳答案 这是 o
基本上,isTouched() 和 justTouched() 之间有什么区别? 什么时候应该使用 isTouched() 和什么时候应该使用 justTouched()? 请帮助我。 最佳答案 bo
if (colliderBox.isTouching (col) && col.CompareTag("barrier")) { score++; this.GetCo
if (colliderBox.isTouching (col) && col.CompareTag("barrier")) { score++; this.GetCo
我正在尝试制作一个 iPhone 游戏,其设置使得基本游戏逻辑只是一个每 .02 秒触发一次的计时器 游戏的唯一控制是触摸屏幕(或不触摸屏幕)所以我想知道是否有任何简单的方法可以快速获取 bool 值
我是一名优秀的程序员,十分优秀!