从毁坏的砖块上掉下来的电源下降是从屏幕中间掉下来的,我正试图从毁坏的刺针位置掉下电源。
private void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.tag == "ball")
{
hitPoint--;
if (hitPoint <= 0)
{
Destroy(this.gameObject);
Instantiate(explosion, transform.position, transform.rotation);
//calculate a random value between 0 and 1
//if randomvalue is smaller than percentage do the next line
if (randNum < percentage)
{
Instantiate(heart,Vector3.down * fallSpeed * Time.deltaTime, transform.rotation);
}
}
}
}
答案 0 :(得分:0)
问题出在这一行:
Instantiate(heart,Vector3.down * fallSpeed * Time.deltaTime, transform.rotation);
它会在屏幕中间生成需要更改的对象:
Instantiate(heart, transform.position, transform.rotation);
请记住,OnCollisionEnter
在碰撞检测中仅调用了一次,而且Instantiate
方法也仅创建一个对象并获取该对象的位置和旋转。因此,您不能在此处设置对象的速度。
将另一个脚本附加到“心脏加电”并通过该脚本移动它。例如:
public class Heart : MonoBehaviour
{
private void Update()
{
transform.position += Vector3.down * fallSpeed * Time.deltaTime
}
}