Включите падающую позицию - PullRequest
0 голосов
/ 12 мая 2019

Усиление падения с разрушенного кирпича падает с середины экрана, я пытаюсь заставить власти падать с позиции разрушенного укола.

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);
            }

        }
    }
}

1 Ответ

0 голосов
/ 12 мая 2019

Проблема в этой строке:

Instantiate(heart,Vector3.down * fallSpeed * Time.deltaTime, transform.rotation);

, которые порождают объект в середине экрана, который должен измениться следующим образом:

Instantiate(heart, transform.position, transform.rotation);

Помните, что OnCollisionEnter вызывается только один раз при обнаружении столкновения, также метод Instantiate только создает объект и принимает положение и вращение объекта. Таким образом, вы не можете установить скорость для вашего объекта здесь. Прикрепите другой скрипт к «powerup сердца» и переместите его этим скриптом. Например:

public class Heart : MonoBehaviour
{
    private void Update()
    {
        transform.position += Vector3.down * fallSpeed * Time.deltaTime
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...