Перенос алгоритма из VS в Unity[РЕШЕНО]

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

Перенос алгоритма из VS в Unity[РЕШЕНО]

Сообщение Berenold 23 ноя 2011, 18:57

Доброго времени суток.
Я написал алгоритм на чистом C# в VS. Алгоритм работает нормально. Но при переносе этого алгоритма в Unity я столкнулся с вот такими проблемами:
Синтаксис:
Используется csharp
using System;
using System.Collections;
using UnityEngine;

class Program
{
  Random rnd = new Random(); // Генератор случайных чисел
    ...    
    ...    
    void Beginer()
    {
          etaj = Convert.ToByte(rnd.Next(0, 3));
          ...    
          ...    
    }
    ...    
    ...    
}

На Random ругается - конфликт с Random-ом от UnityEngin
Assets/Content/Scripts/Client/LevelsTools/LevelGenerator.cs(7,9): error CS0104: `Random' is an ambiguous reference between `System.Random' and `UnityEngine.Random'

Первым делом залез в справку и нашел:
Random.Range

static function Range (min : float, max : float) : float
Description
Returns a random float number between and min [inclusive] and max [inclusive] (Read Only).
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
public GameObject prefab;
void Start() {
Vector3 position = new Vector3(Random.Range(-10.0F, 10.0F), 0, Random.Range(-10.0F, 10.0F));
Instantiate(prefab, position, Quaternion.identity) as GameObject;
}
}

static function Range (min : int, max : int) : int
Description
Returns a random integer number between min [inclusive] and max [exclusive] (Read Only).
If max equals min, min will be returned. The returned value will never be max unless min equals max.
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
void Awake() {
Application.LoadLevel(Random.Range(0, Application.levelCount));
}
}


В принципе понятно, тоже самое только возвращает float.
Но у меня вопрос - можно ли как-то использовать стандартный Random C#-а? А-то блин переделывать очень дофига.
Пробовал писать и так
Синтаксис:
Используется csharp
System.Random rnd = new Random()

тоже не помогло(
Отключить using System; нельзя так как у меня в скрипте используется Convert.ToByt()

И вторая проблема ругается на двумерный массив.
Синтаксис:
Используется csharp
levelContent[startEtaj, 0] = 'S';
 

на эту и подобные строки кода выдает ошибки
Assets/Content/Scripts/Client/LevelsTools/LevelGenerator.cs(514,56): error CS1012: Too many characters in character literal

Assets/Content/Scripts/Client/LevelsTools/LevelGenerator.cs(514,57): error CS1525: Unexpected symbol `<internal>'

В VS проблемы такой не было(
Заранее спасибо за ответы.
Последний раз редактировалось Berenold 23 ноя 2011, 19:59, всего редактировалось 1 раз.
Невозможное возможно!
Аватара пользователя
Berenold
UNITрон
 
Сообщения: 151
Зарегистрирован: 31 июл 2010, 01:44
Откуда: Киев
  • Сайт

Re: Перенос алгоритма из VS в Unity

Сообщение DbIMok 23 ноя 2011, 19:12

Синтаксис:
Используется csharp
System.Random rnd = new System.Random();

насчет 'S' ошибка в чем=то другом.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Перенос алгоритма из VS в Unity

Сообщение seaman 23 ноя 2011, 19:13

Синтаксис:
Используется csharp
using Random = System.Random;
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Перенос алгоритма из VS в Unity

Сообщение Berenold 23 ноя 2011, 19:22

DbIMok писал(а):
Синтаксис:
Используется csharp
System.Random rnd = new System.Random();
 


Спасибо помогло. Насчет массива я забыл указать, что у меня массив типа char. Потому-то я и использую одинарные кавычки.
С массивом вопрос остается открытым(
Невозможное возможно!
Аватара пользователя
Berenold
UNITрон
 
Сообщения: 151
Зарегистрирован: 31 июл 2010, 01:44
Откуда: Киев
  • Сайт

Re: Перенос алгоритма из VS в Unity

Сообщение seaman 23 ноя 2011, 19:27

Too many characters in character literal

Кодировка не unicode?
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Перенос алгоритма из VS в Unity

Сообщение Berenold 23 ноя 2011, 19:58

seaman писал(а):
Too many characters in character literal

Кодировка не unicode?

Пипец... Стояла кодировка UTF-8(без BOM). Поставил UTF-8 все нормально))
Еще раз всем спасибо за ответы))
Невозможное возможно!
Аватара пользователя
Berenold
UNITрон
 
Сообщения: 151
Зарегистрирован: 31 июл 2010, 01:44
Откуда: Киев
  • Сайт


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

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

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