Страница 1 из 1

The Object you want to instantiate is null.

СообщениеДобавлено: 18 ноя 2019, 12:18
DniSon
Хотел сгенерировать пулю. Но выдает ошибку...
Синтаксис:
Используется csharp
    [SerializeField]
    private int lives = 5;
    [SerializeField]
    private float speed = 3.0f;
    [SerializeField]
    private float JumpForce = 10.0f;
    new private Rigidbody2D rigidbody;
    private Animator anim;
    private SpriteRenderer sprite;
    private bool IsGrounded = false;
    private Bullet bullet1;

    private CharState state
    {
        get { return (CharState)anim.GetInteger("State"); }
        set { anim.SetInteger("State", (int)value); }
    }
    private void Awake()
    {
        rigidbody = GetComponent<Rigidbody2D>();
        anim = GetComponent<Animator>();
        sprite = GetComponentInChildren<SpriteRenderer>();
        bullet1 = Resources.Load<Bullet>("Pulya");
    }
    private void FixedUpdate()
    {
        CheckGround();
    }
    private void Update()
    {
        if(Input.GetButtonDown("f1"))Shoot();
        if(IsGrounded)state = CharState.Idle;
        if (Input.GetButton("Horizontal")) Run();
        if (IsGrounded && Input.GetButtonDown("Jump")) Jump();
    }
    private void Run()
    {
        if(IsGrounded)state = CharState.Run;
        Vector3 direction = transform.right * Input.GetAxis("Horizontal");
        transform.position = Vector3.MoveTowards(transform.position, transform.position + direction, speed * Time.deltaTime);
        sprite.flipX = direction.x <0.0f;

    }
    private void Jump()
    {
        rigidbody.AddForce(transform.up * JumpForce, ForceMode2D.Impulse);
        state = CharState.Jump;
    }
    private void Shoot()
    {
        Vector3 posit1on = transform.position; posit1on.y += 0.8f;
        Instantiate(bullet1, posit1on, transform.rotation);
    }
    private void CheckGround()
    {
        Collider2D[] colliders = Physics2D.OverlapCircleAll(transform.position,0.3f);
        IsGrounded = colliders.Length > 1;
    }

Re: The Object you want to instantiate is null.

СообщениеДобавлено: 18 ноя 2019, 13:17
Jarico
Синтаксис:
Используется csharp
bullet1 = Resources.Load<Bullet>("Pulya");


Префаб не нашёлся... Лучше оставь ссылку на префаб с помощью инспектора

Re: The Object you want to instantiate is null.

СообщениеДобавлено: 18 ноя 2019, 13:57
Saltant
bullet1 это ваще GameObject?

Re: The Object you want to instantiate is null.

СообщениеДобавлено: 18 ноя 2019, 17:47
immeasurability
bullet1 = Resources.Load<Bullet>("Pulya");

убедись что в папке ресурсов находится префаб Pulya со скриптом<Bullet>

Лучше оставь ссылку на префаб с помощью инспектора

лучше чем меньше манипуляций в интерфейсе редактора, тем лучше (для меня) что бы не путаться в будущем что надо указывать а что нет