Понедельник, 25 Ноября 2024, 22:01

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Результаты поиска
iOneДата: Четверг, 03 Июля 2014, 13:37 | Сообщение # 1 | Тема: Вопрос-[ответ] по Unity
был не раз
Сейчас нет на сайте
Цитата NEBR ()
А из скрипта обратится к ней можно так
Если объект не куб, а любой другой - делается аналогично, только вместо size будет radius

Спасибо, пригодится.

Цитата lentinant ()
iOne, ты используешь GetComponents - этот метод возвращает МАССИВ. В ошибке четко сказано - ты получаешь не один компонент, а массив, и пытаешься получить с этого массива значение, как с одного компонента. Замени GetComponents на GetComponent.

Огромное спасибо. Не понял что он про массив ругается. Теперь всё работает.

Ну и крайний вопрос на сегодня: При выполнении команды
Код
Debug.Log("Радиус планеты " + heightPlayer);

Русские символы отображаются не корректно, понятно что кодировка не та, но где её поменять?


Сообщение отредактировал iOne - Четверг, 03 Июля 2014, 13:41
iOneДата: Четверг, 03 Июля 2014, 11:31 | Сообщение # 2 | Тема: Вопрос-[ответ] по Unity
был не раз
Сейчас нет на сайте
Код
public class PlanetInfo : MonoBehaviour {

   //Радиус объекта, ближе нельзя приближаться
   public float Radius = 50f;
}


Цитата xMoonGuarDx ()
так же проверь область видимости, т.е. что твой скрипт знает о существовании этого класса.

Можно подробнее, не совсем понял как это сделать.

Ещё один вопрос: как определить радиус коллаидра выбранного объекта?


Сообщение отредактировал iOne - Четверг, 03 Июля 2014, 11:33
iOneДата: Четверг, 03 Июля 2014, 10:13 | Сообщение # 3 | Тема: Вопрос-[ответ] по Unity
был не раз
Сейчас нет на сайте
Помогите разобраться где ошибка.

Есть скрипт на объекте, в нём переменная:

Код
//Радиус объекта, ближе нельзя приближаться
  public float Radius = 15f;

Пытаюсь получить переменную из другого скрипта:

Код
if (Input.GetMouseButton(0))
             {
                  ray = UnityEngine.Camera.mainCamera.ScreenPointToRay(Input.mousePosition);
                  if (Physics.Raycast(ray, out hit, 10000.0f))
                  {
     target = hit.transform.position; //point;
     heightPlayer = hit.collider.transform.GetComponents<PlanetInfo>().Radius;
     }
    }

Переменная heightPlayer тоже float и сейчас задана жестко. Если убрать строчку:
Код
heightPlayer = hit.collider.transform.GetComponents<PlanetInfo>().Radius;

Всё работает.
При запуске выдаёт ошибку:
Код
Assets/Scripts/MovePlayer.cs(46,99): error CS1061: Type `PlanetInfo[]' does not contain a definition for `Radius' and no extension method `Radius' of type `PlanetInfo[]' could be found (are you missing a using directive or an assembly reference?)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг