Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
public class MainDataBase : MonoBehaviour {
public bool[,] figureMask;//Маска текущей фигуры
public bool[,] tempFigureMask;//Маска заполняемой фигуры
public int[] turn;//Очередь в заполняемой фигуре
public int[,] gpsFigure;//Координаты точек "true" в текущей фигуре
public bool turnOk = false;//Очередь заполнена
public bool tempFigureOk = false;//Выбранна новая временная фигура
// Use this for initialization
public void turnFigure(){
if (tempFigureOk){
turn = new int [4];
turn[0] = 3;
turn[1] = 1;
turn[2] = 0;
turn[3] = 2;
turnOk = true;
}
}
void Start () {
}
// Update is called once per frame
void Update () {
}
}
using System.Collections;
public class MainDataBase : MonoBehaviour {
public bool[,] figureMask;//Маска текущей фигуры
public bool[,] tempFigureMask;//Маска заполняемой фигуры
public int[] turn;//Очередь в заполняемой фигуре
public int[,] gpsFigure;//Координаты точек "true" в текущей фигуре
public bool turnOk = false;//Очередь заполнена
public bool tempFigureOk = false;//Выбранна новая временная фигура
// Use this for initialization
public void turnFigure(){
if (tempFigureOk){
turn = new int [4];
turn[0] = 3;
turn[1] = 1;
turn[2] = 0;
turn[3] = 2;
turnOk = true;
}
}
void Start () {
}
// Update is called once per frame
void Update () {
}
}
На другом объекте скрипт SpawnFigure:
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
public class SpawnFigure : MonoBehaviour {
public Transform dady;
public Transform Unit1;
public Transform Unit2;
public Transform Unit3;
public Transform Unit4;
private Transform myTransform;
private MainDataBase MainData;
//Функция вибирает временную фигуру
public void selectFigure(){
int rnd = Mathf.RoundToInt(Random.Range(0,3));
MainData.tempFigureMask = new bool [2,3];
if (rnd == 0){
MainData.tempFigureMask[0,0] = true;
MainData.tempFigureMask[0,1] = true;
MainData.tempFigureMask[1,1] = true;
MainData.tempFigureMask[1,2] = true;
}
if (rnd == 1){
MainData.tempFigureMask[0,0] = true;
MainData.tempFigureMask[0,1] = true;
MainData.tempFigureMask[0,2] = true;
MainData.tempFigureMask[1,2] = true;
}
if (rnd == 2){
MainData.tempFigureMask = new bool [2,2];
MainData.tempFigureMask[0,0] = true;
MainData.tempFigureMask[0,1] = true;
MainData.tempFigureMask[1,0] = true;
MainData.tempFigureMask[1,1] = true;
}
MainData.tempFigureOk = true;
MainData.turnFigure();
}
void spawn(){
if (MainData.turnOk){
Transform clone_dady = Instantiate (dady,myTransform.position,Quaternion.identity) as Transform;
}
}
// Use this for initialization
void Start () {
myTransform = transform;
MainData = gameObject.GetComponent("MainDataBase") as MainDataBase;
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown(0)){
selectFigure();
}
if (Input.GetMouseButtonDown(1)){
spawn();
}
}
}
using System.Collections;
public class SpawnFigure : MonoBehaviour {
public Transform dady;
public Transform Unit1;
public Transform Unit2;
public Transform Unit3;
public Transform Unit4;
private Transform myTransform;
private MainDataBase MainData;
//Функция вибирает временную фигуру
public void selectFigure(){
int rnd = Mathf.RoundToInt(Random.Range(0,3));
MainData.tempFigureMask = new bool [2,3];
if (rnd == 0){
MainData.tempFigureMask[0,0] = true;
MainData.tempFigureMask[0,1] = true;
MainData.tempFigureMask[1,1] = true;
MainData.tempFigureMask[1,2] = true;
}
if (rnd == 1){
MainData.tempFigureMask[0,0] = true;
MainData.tempFigureMask[0,1] = true;
MainData.tempFigureMask[0,2] = true;
MainData.tempFigureMask[1,2] = true;
}
if (rnd == 2){
MainData.tempFigureMask = new bool [2,2];
MainData.tempFigureMask[0,0] = true;
MainData.tempFigureMask[0,1] = true;
MainData.tempFigureMask[1,0] = true;
MainData.tempFigureMask[1,1] = true;
}
MainData.tempFigureOk = true;
MainData.turnFigure();
}
void spawn(){
if (MainData.turnOk){
Transform clone_dady = Instantiate (dady,myTransform.position,Quaternion.identity) as Transform;
}
}
// Use this for initialization
void Start () {
myTransform = transform;
MainData = gameObject.GetComponent("MainDataBase") as MainDataBase;
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown(0)){
selectFigure();
}
if (Input.GetMouseButtonDown(1)){
spawn();
}
}
}
При попытке проверить работоспособность, вылетает ошибка "Ссылка объекта не указывает на экземпляр объекта"
Если оба скрипта повесить на один объект, то все работает...
Как наладить связь между скриптами разных объектов?