use*_*708 5 c# unity-game-engine collider
首先,我知道这个问题已经被问了很多,但我找不到解决方案,所以mi问题是,我正在制作一个教育游戏,我有一个静脉和血流(有许多盒子对撞机)和一个血细胞(也有一个盒子对撞机)然而我想让细胞在到达墙壁对撞机时摧毁,但它不会只停留在那里,这是项目!
http://tinypic.com/r/10706es/9
(由于我的声誉,无法上传图片,抱歉)
我要破坏我的细胞的对撞机是粉红色的对撞机,但是当它碰到它时它什么也没做,这是我的脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class collision : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void OnCollisionEnter(Collision col)
{
print("hihi");
if (col.gameObject.tag == "Collider")
{
Destroy(gameObject);
}
}
}
Run Code Online (Sandbox Code Playgroud)
此外,这是AddForce脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AddForce : MonoBehaviour {
public float thrust;
public Rigidbody rb;
private Vector3 up;
private bool move;
void Start()
{
rb = GetComponent<Rigidbody>();
up = new Vector3(0, 1, 0);
move = false;
}
void FixedUpdate()
{
if (Input.GetKey("space"))
{
if (rb.velocity.magnitude < 5)
rb.AddForce(up * thrust);
move = true;
}
else
{
if (move == true)
rb.velocity = new Vector3(0, -0.5F, 0);
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!:d
它可以是几件事:
collider.gameObject.CompareTag("Collider"),它有更好的性能)如果它正常工作,您应该能够按下播放并将一个GameObject拖到另一个GameObject中,并且您的Debug.Log将会出现.
作为建议,使用更好地描述将成为其一部分的GameObject组的标签名称,如"RedCells"或"WhiteCells".配置图层碰撞矩阵并提高游戏性能会更容易.
另一个建议是:对于只是破坏另一个GameObject的碰撞器(不要做出反应,如碰撞或实际碰撞)我使用触发器.这样,它们之间的碰撞不会改变剩余GameObject中的任何东西(如方向/速度/等).为此,请检查Collider中的Is Trigger并使用OnTriggerEnter而不是OnCollisionEnter.
| 归档时间: |
|
| 查看次数: |
19964 次 |
| 最近记录: |