Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
1 / 1 / 0
Регистрация: 29.05.2018
Сообщений: 9
1

Рандомная скорость объекта

29.05.2018, 03:23. Показов 2488. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
2д игрушка, с левого края карутином создаю платформы, придаю им рандомную позицию, с этим все нормально, но при попытке придания каждому новому клону обьекта рандомной скорости (от 1 до 4) не выходит... рандом срабатывает только раз, при запуске игры. вот скрипт движения:


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using UnityEngine;
using System.Collections;
 
public class Move : MonoBehaviour {
 
    public float _moveSpeed=(Random.Range(1,4));
 
 
 
    // Use this for initialization
    void Avake () {
 
    }
    
    // Update is called once per frame
    void Update() {
        transform.position+= transform.right* Time.deltaTime * _moveSpeed;
        }
}
что тут не так? кто подскажет?

Добавлено через 36 минут
C#
1
2
3
void Avake () {
 
}
это тут совсем не нужно, осталось после одной из многочисленных попыток исправить выполнение скрипта
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2018, 03:23
Ответы с готовыми решениями:

Почему скорость не рандомная?
using System.Collections; using System.Collections.Generic; using UnityEngine; public class...

Регулировать скорость увеличения/уменьшения объекта
Здравствуйте. Есть шар. При нажатии на клавишу Q он увеличивается (запускается метод, в котором...

Как узнать скорость перемещения объекта в 3-мерном пространстве, если задана вертикальная и горизонтальная ср. скорость
Здравствуйте. Есть задача: имеется квадрокоптер, он летает в трёхмерном пространстве с координатами...

Максимальная скорость падающего на землю объекта
Как известно, все тела, вне зависимости от массы, падают с одной и той же скоростью и за одно и...

13
13 / 12 / 8
Регистрация: 04.12.2013
Сообщений: 323
29.05.2018, 17:17 2
Попробуй в старте давать скорость
C#
1
2
3
void Start() {
 _moveSpeed=(Random.Range(1,4));
}
Добавлено через 1 минуту
И Avake пишется правильней Awake через W
1
1 / 1 / 0
Регистрация: 29.05.2018
Сообщений: 9
30.05.2018, 05:39  [ТС] 3
Цитата Сообщение от Staz Lincord Посмотреть сообщение
Попробуй в старте давать скорость
C#
1
2
3
void Start() {
 _moveSpeed=(Random.Range(1,4));
}
Добавлено через 1 минуту
И Avake пишется правильней Awake через W
за поправку на Awake спасибо, а вот с кодом промашка...
выдает так же одинаковые значения у всех клонов обьекта
0
14 / 14 / 2
Регистрация: 07.11.2015
Сообщений: 237
30.05.2018, 12:20 4
Попробуй типа
C#
1
public float MoveSpeed { get { return Random.Range(1,4); } set; }
1
1 / 1 / 0
Регистрация: 29.05.2018
Сообщений: 9
30.05.2018, 22:45  [ТС] 5
Цитата Сообщение от JerryLetehen Посмотреть сообщение
Попробуй типа
C#
1
public float MoveSpeed { get { return Random.Range(1,4); } set; }
Результат тот же ...(
0
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
31.05.2018, 01:38 6
C#
1
transform.position+= transform.right* Time.deltaTime * _moveSpeed;
C#
1
transform.position += new Vector3(Time.deltaTime * _moveSpeed, 0f, 0f);
0
1 / 1 / 0
Регистрация: 29.05.2018
Сообщений: 9
31.05.2018, 07:38  [ТС] 7
да, так возможно правильнее, хотя игра все же скорее 2 д, но и это проблемы не решит...
0
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
31.05.2018, 10:27 8
Арменыч, так работает? Может объект стоял с неправильным поворотом.
1
1 / 1 / 0
Регистрация: 29.05.2018
Сообщений: 9
31.05.2018, 11:51  [ТС] 9
Цитата Сообщение от Cr0c Посмотреть сообщение
Арменыч, так работает? Может объект стоял с неправильным поворотом.
да работает, но скорость обьектов не меняется

Добавлено через 32 секунды
using UnityEngine;
using System.Collections;

public class Move : MonoBehaviour {
public GameObject platform;

public float _moveSpeed;

void Awake(){
_moveSpeed=(Random.Range (1,4));
}


void Update() {

transform .position += new Vector3 (Time.deltaTime * _moveSpeed, 0f, 0f);
}
}

Добавлено через 31 секунду
решение найдено, всем спасибо за участие

Добавлено через 39 минут
возникает другой вопрос: при попадании ГГ (главного героя), в моем случае это шар, на платформу ее нужно остановить и задать медленное движение вниз. как этого добиться?
0
136 / 131 / 43
Регистрация: 07.11.2017
Сообщений: 553
31.05.2018, 14:57 10
Цитата Сообщение от Арменыч Посмотреть сообщение
ее нужно остановить и задать медленное движение вниз
а как вы задали ей движение изначальное?
0
1 / 1 / 0
Регистрация: 29.05.2018
Сообщений: 9
31.05.2018, 19:33  [ТС] 11
using UnityEngine;
using System.Collections;

public class Move : MonoBehaviour {
public GameObject platform;

public float _moveSpeed;

void Awake(){
_moveSpeed=(Random.Range (1,4));
}


void Update() {

transform .position += new Vector3 (Time.deltaTime * _moveSpeed, 0f, 0f);
}
}
0
136 / 131 / 43
Регистрация: 07.11.2017
Сообщений: 553
01.06.2018, 09:10 12
Цитата Сообщение от Арменыч Посмотреть сообщение
C#
1
transform .position += new Vector3 (Time.deltaTime * _moveSpeed, 0f, 0f);
тут вы изменяли по Х, измените теперь по У, вместо Х
0
1 / 1 / 0
Регистрация: 29.05.2018
Сообщений: 9
01.06.2018, 11:24  [ТС] 13
Цитата Сообщение от f3hler Посмотреть сообщение
тут вы изменяли по Х, измените теперь по У, вместо Х
нет, по моему... был способ с использованием триггера, но я точно его не помню... на шар кажется вешается еще шар без рендерера но с триггером и на платформу скрипт, иф триггеред и тд... я просто это построение в с# не помню
0
136 / 131 / 43
Регистрация: 07.11.2017
Сообщений: 553
01.06.2018, 12:18 14
Цитата Сообщение от f3hler Посмотреть сообщение
тут вы изменяли по Х, измените теперь по У, вместо Х
я имею ввиду что тут вы двигаете горизонтально, а вам нужно вертикально.
вот и меняйте не Х, а У
0
01.06.2018, 12:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2018, 12:18
Помогаю со студенческими работами здесь

Скорость поиска объекта. List. RayCast. GetMapObjectByBody
Как быстрее найти объект. Раньше использовал List для копирования нужных объектов с индексацией...

Скорость пули при выстреле с движущегося объекта в обратном направлении
Здравствуйте! Помогите, пожалуйста, ответить на вопрос: Допустим, я двигаюсь на автомобиле со...

Как увеличить скорость движения объекта по таймеру, если его интервал уже и так равен единице
Есть объект он передвигается по форм, передвижение осуществлено по таймеру, в таймере интервал...

Нужно сделать рандомную паузу и рандомную скорость объекта
Имеется код, который бесконечно передвигает объект в определенную точку и обратно. using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru