Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 21.08.2015, 00:29   #2236
ILonion
ПроЭктировщик
 
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений
(для 25 пользователей)
Ответ: Вопросы от новичка

Можно ли акромя поиска получить доступ к размеру (x,y,z) шейпа частиц
http://answers.unity3d.com/questions...ection-in.html
?
(Offline)
 
Ответить с цитированием
Старый 10.09.2015, 23:50   #2237
FREE MAN
Разработчик
 
Регистрация: 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
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Так надо посчитать дистанцию или чтобы объект двигался?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 11.09.2015, 01:41   #2239
FREE MAN
Разработчик
 
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений
(для 565 пользователей)
Ответ: Вопросы от новичка

Надо как то заставить точку где создается префаб двигаться вместе с объектом который движется. Ситуация такая, Есть грузовик я заехал в точку создал груз, начинаю отъезжать, а груз считает дистанцию не от грузовика а от точки где создался груз. Нужно что бы груз считал дистанцию с грузовиком.
(Offline)
 
Ответить с цитированием
Старый 11.09.2015, 02:18   #2240
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Сделать груз чайлдом к грузовику? Считать дистанцию между грузом и грузовиком?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 11.09.2015, 02:23   #2241
FREE MAN
Разработчик
 
Регистрация: 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
FREE MAN
Разработчик
 
Регистрация: 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
FREE MAN
Разработчик
 
Регистрация: 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
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Да имхо ты где-то простой косяк в расчетах сделал.
Vector3.Distance (cars[0].positiontransform.position); 
Тут как я понял дистанция между объектом potera_gruza (transform) и машиной cars[0]. Где сам груз то?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 12.09.2015, 11:34   #2247
FREE MAN
Разработчик
 
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений
(для 565 пользователей)
Ответ: Вопросы от новичка

Сообщение от pax Посмотреть сообщение
Да имхо ты где-то простой косяк в расчетах сделал.
Vector3.Distance (cars[0].positiontransform.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
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Есть вероятность, что при создании кодом и создании в редакторе структуры объектов отличаются? Или возможно скрипт potera_gruza добавляется не тому объекту?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 12.09.2015, 18:26   #2249
FREE MAN
Разработчик
 
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений
(для 565 пользователей)
Ответ: Вопросы от новичка

Сообщение от pax Посмотреть сообщение
Есть вероятность, что при создании кодом и создании в редакторе структуры объектов отличаются? Или возможно скрипт potera_gruza добавляется не тому объекту?
Скрипт добавляется грузу. Я думаю, что при создании кодом теряется связь префаба с грузовиком. По факту я решил проблему уже только через тригер.
(Offline)
 
Ответить с цитированием
Старый 12.09.2015, 21:27   #2250
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Префаб никак не может быть связан с объектом сцены, только наоборот. При создании экземпляра префаба в сцене надо обязательно ему ссылки на объекты сцены передавать.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 06:20.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com