Падение Unity

Программирование на Юнити.

Падение Unity

Сообщение nimferus 04 дек 2010, 21:29

Добрый день. Прохожу уроки Hack and Slash. Возникла такая проблема. Юнити падает. Выяснил где. Вот код.
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using System;

public class BaseCharacter : MonoBehaviour {
        private string _name;
        private int _level;
        private uint _freeExp;
       
        private Attribute[] _primaryAttribute;
        private Vital[] _vital;
        private Skill[] _skill;
       
        public BaseCharacter() {
                _level = 0;
                _freeExp = 0;
                _name = string.Empty;
                _primaryAttribute = new Attribute[Enum.GetValues(typeof(AttributeName)).Length];
                _vital = new Vital[Enum.GetValues(typeof(VitalName)).Length];
                _skill = new Skill[Enum.GetValues(typeof(SkillName)).Length];
               
                Debug.Log(_primaryAttribute.Length);
                for(int cnt = 0; cnt < _primaryAttribute.Length; cnt++) {
==========>>   _primaryAttribute[cnt] = new Attribute();        <<<<<<<<<<<<<<============== Из-за этого падает ================================
                        Debug.Log(cnt);
                }
                //SetupPrimaryAttributes();
                //SetupVitals();
                //SetupSkills();
        }
       
        public string Name {
                get { return _name; }
                set { _name = value; }
        }
       
        public int Level {
                get { return _level; }
                set { _level = value; }
        }
       
        public uint FreeExp {
                get { return _freeExp; }
                set { _freeExp = value; }
        }
       
        public void AddExp(uint exp) {
                _freeExp += exp;
                CalculateLevel();
        }
       
        public void CalculateLevel() {
        }
       
        private void SetupPrimaryAttributes() {
                Debug.Log(_primaryAttribute.Length);
                for(int cnt = 0; cnt < _primaryAttribute.Length; cnt++) {
                        _primaryAttribute[cnt] = new Attribute();      
                        Debug.Log(cnt);
                }
        }
       
        private void SetupVitals() {
                for(int cnt = 0; cnt < _vital.Length; cnt++) {
                        _vital[cnt] = new Vital();     
                }
        }
       
        private void SetupSkills() {
                for(int cnt = 0; cnt < _skill.Length; cnt++) {
                        _skill[cnt] = new Skill();     
                }
        }
       
        public Attribute GetPrimaryAttribute(int index) {
                return _primaryAttribute[index];
        }
       
        public Vital GetVital(int index) {
                return _vital[index];
        }
       
        public Skill GetSkill(int index) {
                return _skill[index];
        }
       
        private void SetupVitalModifiers() {
                //health
                GetVital((int)VitalName.Health).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion), .5f));
                //energy
                GetVital((int)VitalName.Energy).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion), 1));
                //mana
                GetVital((int)VitalName.Mana).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), 1));

        }
       
        private void SetupSkillModifiers() {
                //melee offence
                GetSkill((int)SkillName.Melee_Offence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Might), .33f));
                GetSkill((int)SkillName.Melee_Offence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness), .33f));
                //melee defence
                GetSkill((int)SkillName.Melee_Defence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f));
                GetSkill((int)SkillName.Melee_Defence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion), .33f));
                //magic offence
                GetSkill((int)SkillName.Magic_Offence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f));
                GetSkill((int)SkillName.Magic_Offence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), .33f));
                //magic defence
                GetSkill((int)SkillName.Magic_Defence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f));
                GetSkill((int)SkillName.Magic_Defence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), .33f));
                //range offence
                GetSkill((int)SkillName.Ranged_Offence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f));
                GetSkill((int)SkillName.Ranged_Offence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f));
                //range defence
                GetSkill((int)SkillName.Ranged_Defence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness), .33f));
                GetSkill((int)SkillName.Ranged_Defence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f));
               
        }
       
        public void StatUpdate() {
                for(int cnt = 0; cnt < _vital.Length; cnt++)
                        _vital[cnt].Update();
                for(int cnt = 0; cnt < _skill.Length; cnt++)
                        _skill[cnt].Update();
        }
}

 


В чём может быть проблема, странно то, что в уроках всё работает. Хотя у меня версия 3,1 а там 3,0 , но не думаю что из-за этого)
nimferus
UNец
 
Сообщения: 19
Зарегистрирован: 07 сен 2010, 18:46

Re: Падение Unity

Сообщение Zaicheg 04 дек 2010, 21:39

А можно ссылку на урок?
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Падение Unity

Сообщение nimferus 04 дек 2010, 21:43

Да конечно, правда там многовато)
http://www.burgzergarcade.com/hack-slas ... e-tutorial
nimferus
UNец
 
Сообщения: 19
Зарегистрирован: 07 сен 2010, 18:46

Re: Падение Unity

Сообщение nimferus 04 дек 2010, 22:14

Поспешил я, всё же проблема осталась.
Ссылка на весь проект - http://dl.dropbox.com/u/9915705/Hack%20and%20Slash.zip
Заранее спасибо.
nimferus
UNец
 
Сообщения: 19
Зарегистрирован: 07 сен 2010, 18:46

Re: Падение Unity

Сообщение Neodrop 04 дек 2010, 23:17

А в логах почитать не пробовали? :-?
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Падение Unity

Сообщение nimferus 04 дек 2010, 23:39

Посмотрел логи, там вроде всё как и должно быть, никаких слов об ошибка крешах и т.д.
nimferus
UNец
 
Сообщения: 19
Зарегистрирован: 07 сен 2010, 18:46

Re: Падение Unity

Сообщение Avatarchik 05 дек 2010, 00:13

Ошибка пофиксена,(была из-за неправильного использования get,set).Как сказал автор:
это всё злой копи паст
:D
Добавить ava-karaban в Skype
Аватара пользователя
Avatarchik
UNITрон
 
Сообщения: 274
Зарегистрирован: 04 апр 2009, 15:36
Откуда: Украина(Донецк)
  • ICQ

Re: Падение Unity

Сообщение Fox Rex 06 дек 2010, 08:37

Если из за использования свойств валится юнити, то это ошибка не кода, а разработчиков движка.
Never more!
Аватара пользователя
Fox Rex
UNITрон
 
Сообщения: 218
Зарегистрирован: 04 сен 2010, 11:24

Re: Падение Unity

Сообщение gnoblin 06 дек 2010, 13:20

ох, нет!
прежде чем делать такой мега-вывод надо посмотреть код.
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Падение Unity

Сообщение Avatarchik 06 дек 2010, 17:22

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

Я тоже с этим не соглашусь, так как тут сам разработчик накосячил... :-?
Вот сам код:
Синтаксис:
Используется csharp
        private int _baseValue;
        private int _buffValue;
        private int _expToLevel;
        private float _levelModifier;
       
        public BaseStat() {
                _baseValue = 0;
                _buffValue = 0;
                _levelModifier = 1.1f;
                _expToLevel = 100;
        }
    #region Basic Setters and Getters
    //Basic Setters and Getters
    public int BaseValue
    {
        get { return _baseValue; }
        set { _baseValue = value; }
    }

    public int BuffValue
    {
        get { return BuffValue; }
        set { BuffValue = value; }
    }

    public int ExpToLevel
    {
        get { return ExpToLevel; }
        set {ExpToLevel = value; }
    }

    public float LevelModifier
    {
        get { return LevelModifier; }
        set { LevelModifier = value; }
    }
    #endregion

    private int CalculateExpToLevel()
    {
        return (int)(_expToLevel * _levelModifier);
    }

    public void LevelUp()
    {
        _expToLevel = CalculateExpToLevel();
        _baseValue++;
    }

    public int AdjustedBaseValue
    {
        get { return _baseValue + _buffValue; }
    }

}
Добавить ava-karaban в Skype
Аватара пользователя
Avatarchik
UNITрон
 
Сообщения: 274
Зарегистрирован: 04 апр 2009, 15:36
Откуда: Украина(Донецк)
  • ICQ


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8