Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2019, 21:58   #1
realLarkin
Пользователь
 
Регистрация: 23.09.2019
Сообщений: 41
Злость Я в полном шоке от происходящего

Написал код согласно руководству для игры с угадыванием карт. После того как запускаю сцену, нажимаю на первую карту, она открывается, потом нажимаю на вторую и юнити просто выключается. Пишет винда мне мол юнити прекращает свою работу идет поиск причин. А я в полном шоке от происходящего.

вот вам код первого файла

Код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SceneController : MonoBehaviour
{
    [SerializeField]
    private memoryCard originalCard;
    [SerializeField]
    private Sprite[] images;
    private int rows = 2;
    private int colmn = 4;
    public float paddingX = 6.0f;
    public float paddingY = 10.0f;

    
    private void Start()
    {
        Vector3 startPos = originalCard.transform.position;
        int[] numbers = { 0, 0, 1, 1, 2, 2, 3, 3 };
        numbers = ShalfferArray(numbers);
        for (int i = 0; i < colmn; i++)
            for (int j = 0; j < rows; j++)
            {
                memoryCard card;
                if (i == 0 && j == 0)
                {
                    card = originalCard;
                }
                else
                {
                    card = Instantiate(originalCard) as memoryCard;
                }
                int index = (i * rows) + j;
                int id = numbers[index];
                card.SetCard(id, images[id]);
                float posX = (paddingX * i) + startPos.x;
                float posY = -(paddingY * j) + startPos.y;
                card.transform.position = new Vector3(posX, posY, startPos.z);
            }
        
    }
    private int[] ShalfferArray(int[] numbers)
    {
        int[] NewArray = numbers.Clone() as int[];
        for (int i = 0; i < NewArray.Length; i++)
        {
            int rmb = NewArray[i];
            int r = Random.Range(0, NewArray.Length);
            NewArray[i] = NewArray[r];
            NewArray[r] = rmb;
        }
        return NewArray;
    }
    private memoryCard _firstRevealed;
    private memoryCard _secondRevealed;

    public bool canReveal
    {
        get { return _secondRevealed == null; }
    }
    private int score = 0;
    public void CardRevealed(memoryCard Card)
    {
        if(_firstRevealed == null)
        {
            _firstRevealed = Card;
        }
        else
        {
            _secondRevealed = Card;
            StartCoroutine(ChekMatch());
        }
    }
    private IEnumerator ChekMatch()
    {
     if(_firstRevealed.id == _secondRevealed.id)
        {
            score++;
        } else
        {
            yield return new WaitForSeconds(0.5f);
            _firstRevealed.Unreveal();
            _secondRevealed.Unreveal();
        }
        _firstRevealed = null;
        _secondRevealed = null;
    }



}
вот вам код второго файла

Код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class memoryCard : MonoBehaviour
{



    [SerializeField]
    private SceneController controller;
    private int _id;
    public int id
    {
        get { return id; }
    }
    public void SetCard(int id, Sprite image)
    {
        _id = id;
        GetComponent<SpriteRenderer>().sprite = image;
    }
    public GameObject rubashka;
    public void OnMouseDown()
    {
        if (rubashka.activeSelf && controller.canReveal)
        {
            rubashka.SetActive(false);
            controller.CardRevealed(this);
        }
    }
     public void Unreveal()
    {
        rubashka.SetActive(true);
    }

}
вот и когда нажимается вторая карта все вылетает к чертям
realLarkin вне форума Ответить с цитированием
Старый 28.10.2019, 22:07   #2
realLarkin
Пользователь
 
Регистрация: 23.09.2019
Сообщений: 41
По умолчанию

чует моя душа что это как то связано с куратиной, но не могу понять в чем проблема
realLarkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анализ происходящего на экране SixFrenzy Помощь студентам 15 06.08.2016 22:12
opengl - как добавить освещение при полном фоновом свете? Зойберг Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 21.11.2014 20:00
Я в шоке: Гугл проверяет наши письма Levsha100 Свободное общение 29 13.01.2010 15:45
Я в шоке, как VBA складывает ytzm2hsD3X0HVxwl Microsoft Office Excel 5 10.01.2010 01:21
помогите пожалуйста, я в полном ступоре Horknee Операционные системы общие вопросы 1 01.12.2008 11:23