|
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
21.08.2015, 00:29
|
#2236
|
ПроЭктировщик
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений (для 25 пользователей)
|
Ответ: Вопросы от новичка
Можно ли акромя поиска получить доступ к размеру (x,y,z) шейпа частиц
http://answers.unity3d.com/questions...ection-in.html
?
|
(Offline)
|
|
10.09.2015, 23:50
|
#2237
|
Разработчик
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений (для 565 пользователей)
|
Ответ: Вопросы от новичка
Всем доброго времени суток!
Нужна подсказка.
Есть определенный объект (А) и объект (Б) объект (А) уже находится на сцене, а объект (Б) создается из кода
Instantiate (Б [0], new Vector3 (А[0].transform.position.x, А[0].transform.position.y + 3,А[0].transform.position.z), Quaternion.identity);
. Мне нужно просчитать дистанцию между этими объектами, делаю это так
using UnityEngine;
using System.Collections;
public class potera_gruza : MonoBehaviour {
public Transform[] cars;
//public static int seletc_gruz_random;
public float Distance_gruz;
void Start () {
}
//void Update () {
void LateUpdate() {
Debug.Log ("Destroy_gruzes "+Destroy_gruz.Destroy_gruzes);
if (Time.frameCount % 20 == 0) {
if (cars[0]) {
float dist = Vector3.Distance (cars[0].position, transform.position);
if (dist > Distance_gruz) {
Destroy_gruz.Destroy_gruzes = 1;
return;
}
}
}
}
}
Дистанцию я получаю все ок, но он считает дистанцию только от той точки где создался префаб. Как сделать чтобы это точка двигалась за моим объектом? За ранее спасибо если не понятен вопрос то дополню.
|
(Offline)
|
|
11.09.2015, 01:27
|
#2238
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Так надо посчитать дистанцию или чтобы объект двигался?
|
(Offline)
|
|
11.09.2015, 01:41
|
#2239
|
Разработчик
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений (для 565 пользователей)
|
Ответ: Вопросы от новичка
Надо как то заставить точку где создается префаб двигаться вместе с объектом который движется. Ситуация такая, Есть грузовик я заехал в точку создал груз, начинаю отъезжать, а груз считает дистанцию не от грузовика а от точки где создался груз. Нужно что бы груз считал дистанцию с грузовиком.
|
(Offline)
|
|
11.09.2015, 02:18
|
#2240
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Сделать груз чайлдом к грузовику? Считать дистанцию между грузом и грузовиком?
|
(Offline)
|
|
11.09.2015, 02:23
|
#2241
|
Разработчик
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений (для 565 пользователей)
|
Ответ: Вопросы от новичка
Так можно, будет работать, но тогда теряется весь смысл. Я хотел программно создавать груз и удалять когда мне надо.
|
(Offline)
|
|
11.09.2015, 06:54
|
#2242
|
Дэвелопер
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений (для 886 пользователей)
|
Ответ: Вопросы от новичка
Phyton, а в чём проблема программно удалить чайлда? Он ничем не отличается от других объектов.
gruz = Instantiate();
gruz.setParent(gruzovik);
// что-то делаем
Destroy(gruz);
всё должно работать. даже gruz.setParent(null); можно не делать.
|
(Offline)
|
|
11.09.2015, 09:35
|
#2243
|
Разработчик
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений (для 565 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от Жека
Phyton, а в чём проблема программно удалить чайлда? Он ничем не отличается от других объектов.
gruz = Instantiate();
gruz.setParent(gruzovik);
// что-то делаем
Destroy(gruz);
всё должно работать. даже gruz.setParent(null); можно не делать.
|
Проблем в создании, удаление нету. Проблема в том, что груз считает дистанцию только от точки, где создался. А нужно, что бы считалась от грузовика. Грузовик то двигается и дистанция не считается с грузовиком, а точку, где создался префаб не двигается вместе с грузовиком.
|
(Offline)
|
|
11.09.2015, 13:24
|
#2244
|
Дэвелопер
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений (для 886 пользователей)
|
Ответ: Вопросы от новичка
Щас проверил: если двигать родителя, то дочерний transform.position тоже меняется. В редакторе не меняется, а если вывести в коде
print(transform.position.x+","+transform.position.y);
то получим сдвиг как у родителя. выходит, и дистанция должна корректно считаться.
EDIT: в редакторе мы видим координаты, которые соответствуют transform.localPosition - это смещение относительно родителя.
Последний раз редактировалось Жека, 11.09.2015 в 14:24.
|
(Offline)
|
|
11.09.2015, 16:26
|
#2245
|
Разработчик
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений (для 565 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от Жека
Щас проверил: если двигать родителя, то дочерний transform.position тоже меняется. В редакторе не меняется, а если вывести в коде
print(transform.position.x+","+transform.position.y);
то получим сдвиг как у родителя. выходит, и дистанция должна корректно считаться.
EDIT: в редакторе мы видим координаты, которые соответствуют transform.localPosition - это смещение относительно родителя.
|
Я решил проблему другим способом сделал Тригер в виде сферы и повесил ее на грузовик, по тегу проверяю вышел ли груз за пределы сферы и все нормально. С дистанцией таки не смог разобраться как ни крути груз считает дистанцию только от точки где создался. Если бы груз был просто в сцене загружен сразу то проблем нету считает дистанцию корректно. Когда создаешь префаб кодом происходит натуральное шило.
|
(Offline)
|
|
12.09.2015, 02:08
|
#2246
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Да имхо ты где-то простой косяк в расчетах сделал.
Vector3.Distance (cars[0].position, transform.position);
Тут как я понял дистанция между объектом potera_gruza (transform) и машиной cars[0]. Где сам груз то?
|
(Offline)
|
|
12.09.2015, 11:34
|
#2247
|
Разработчик
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений (для 565 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от pax
Да имхо ты где-то простой косяк в расчетах сделал.
Vector3.Distance (cars[0].position, transform.position);
Тут как я понял дистанция между объектом potera_gruza (transform) и машиной cars[0]. Где сам груз то?
|
using UnityEngine;
using System.Collections;
public class potera_gruza : MonoBehaviour {
public Transform[] cars;
//public static int seletc_gruz_random;
public float Distance_gruz;
void Start () {
}
//void Update () {
void LateUpdate() {
Debug.Log ("Destroy_gruzes "+Destroy_gruz.Destroy_gruzes);
if (Time.frameCount % 20 == 0) {
if (cars[0]) {
float dist = Vector3.Distance (cars[0].position, transform.position);
if (dist > Distance_gruz) {
Destroy_gruz.Destroy_gruzes = 1;
return;
}
}
}
}
}
Этот скрипт и висит на грузе.
А вот и сам просчет дистанции с машиной и грузом.
float dist = Vector3.Distance (cars[0].position, transform.position);
|
(Offline)
|
|
12.09.2015, 16:59
|
#2248
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Есть вероятность, что при создании кодом и создании в редакторе структуры объектов отличаются? Или возможно скрипт potera_gruza добавляется не тому объекту?
|
(Offline)
|
|
12.09.2015, 18:26
|
#2249
|
Разработчик
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений (для 565 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от pax
Есть вероятность, что при создании кодом и создании в редакторе структуры объектов отличаются? Или возможно скрипт potera_gruza добавляется не тому объекту?
|
Скрипт добавляется грузу. Я думаю, что при создании кодом теряется связь префаба с грузовиком. По факту я решил проблему уже только через тригер.
|
(Offline)
|
|
12.09.2015, 21:27
|
#2250
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Префаб никак не может быть связан с объектом сцены, только наоборот. При создании экземпляра префаба в сцене надо обязательно ему ссылки на объекты сцены передавать.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:37.
|