Недавно столкнулся с проблемой создания объекта с использованием функции описанной в другом классе.
Есть 2 скрипта:
1) Скрипт, в котором описывается сама функция создания объекта на основе префаба
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
public class Respawn : MonoBehaviour {
public Object PlayerPrefab;
private Object clone;
public void Player()
{
clone = Instantiate(PlayerPrefab, Vector3.zero, Quaternion.identity);
}
}
using System.Collections;
public class Respawn : MonoBehaviour {
public Object PlayerPrefab;
private Object clone;
public void Player()
{
clone = Instantiate(PlayerPrefab, Vector3.zero, Quaternion.identity);
}
}
2) А вот тут я создаю этот объект в зависимости от каких - либо условий
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
public class test : MonoBehaviour {
Respawn _resp = new Respawn();
// Update is called once per frame
void Update () {
if(Input.GetKeyDown(KeyCode.Space))
{
_resp.Player();
}
}
}
using System.Collections;
public class test : MonoBehaviour {
Respawn _resp = new Respawn();
// Update is called once per frame
void Update () {
if(Input.GetKeyDown(KeyCode.Space))
{
_resp.Player();
}
}
}
Далее, вешаю оба скрипта на игровой объект и в инспекторе прикрепляю префаб своего игрока.
При нажатии на пробел по идее должен создаться новый игровой объект на основе указанного префаба, но вместо этого выскакивает ошибка
"ArgumentException: The prefab you want to instantiate is null."
Также пробовал использовать вместо создания объекта выводить сообщение в Debug.Log() ситуация аналогичная, в независимости от того какое я значение введу в инспекторе, в логах вылезает "0". А вот если значение присваивать не через инспектор а в самом скрипте при описании переменных, выводит все хорошо!
Что я не так делаю?? как описать переменную и функцию, чтобы можно было в скрипте присваивать значения через инспектор в юнити??!
ПАМАГИТЕ!!