Unity продолжает падать после того, как я реализовал код - PullRequest
0 голосов
/ 11 апреля 2020

не совсем уверен, почему. По сути, я хотел создать игру с пулями в ад. поэтому я посылал клону пули в пистолет, а затем пистолет стрелял в пулю в зависимости от того, в каком направлении он был направлен. Вот код, который я использовал, это c#. Редактировать: он вылетает при запуске игры.

using System.Collections.Generic;
using UnityEngine;

public class Bulletcontrol1 : MonoBehaviour
{





    void Start()
    {
        StartCoroutine(Countinggggg());
    }


    // Update is called once per frame
    void Shoot()
    {


            Debug.Log("clone");
            GameObject prefab = Resources.Load("Picture1") as GameObject;
            GameObject direction = GameObject.Find("b");
            GameObject go = Instantiate(prefab) as GameObject;
            go.transform.position = new Vector3(-23.25f, 8.75f, 1.494792f);
            while (go.transform.position.x > -10)
            {
                Debug.Log("moving");
                go.transform.position = new Vector3(go.transform.position.x + Mathf.Sin(direction.transform.rotation.z) * 5, go.transform.position.y + Mathf.Cos(direction.transform.rotation.z) * 5, go.transform.position.z);
            }



    }

    IEnumerator Countinggggg()
    {
        yield return new WaitForSeconds(1);
        Shoot();
        Debug.Log("Bang");
    }
}```

1 Ответ

0 голосов
/ 11 апреля 2020

Понятия не имею, что было не так, но я изменил время l oop на a для l oop, а затем заметил, как пуля делала все, что движется одновременно: поэтому я предполагаю, что пока l oop не конец, и пуля, движущаяся бесконечными пространствами, сразу же вызвала это.

, поэтому я добавил WaitForSeconds, чтобы замедлить его, вот код

 IEnumerator Shoot()
    {


            Debug.Log("clone");
            GameObject prefab = Resources.Load("Picture1") as GameObject;
            GameObject direction = GameObject.Find("b");
            GameObject go = Instantiate(prefab) as GameObject;
            go.transform.position = new Vector3(-10.13f, 3.52f, 1.494792f);
        for (int i = 0; i < 100; i++)
        {
            Debug.Log("moving");
            go.transform.position = new Vector3(go.transform.position.x + Mathf.Sin(direction.transform.rotation.z) * -0.1f, go.transform.position.y + Mathf.Cos(direction.transform.rotation.z) * -0.1f, go.transform.position.z);
            yield return new WaitForSeconds(0.1f);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...