Попытка получить доступ к переменным из другого скрипта - PullRequest
0 голосов
/ 18 декабря 2018
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Projectile : MonoBehaviour  
{

    Weapon weapon;

    void Start()
    {
        Weapon weapon = GameObject.Find("Thing").GetComponent<Weapon>();
    }

    void Update()
    {

    }

    void OnTriggerEnter(Collider other)
    {
        other.gameObject.GetComponent<EnemyHealth>().TakeDamage(weapon.damage);
        Destroy(gameObject);
    }
}

1 Ответ

0 голосов
/ 19 декабря 2018

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

Попробуйте вместо этого запустить Start

    void Start()
    {
     var thing=GameObject.Find("Thing");
     if (thing==null) Debug.Log("Thing object not found");
      else
      {   
         weapon = thing.GetComponent<Weapon>();
         if (weapon==null) 
        Debug.Log("No weapon found on thing;
      }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...