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

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

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

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

Ответ
 
Опции темы
Старый 27.01.2013, 12:01   #1171
mauNgerS
Разработчик
 
Аватар для mauNgerS
 
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений
(для 670 пользователей)
Ответ: Вопросы от новичка

Добавил систему частиц командой: Create Other=>Particle System.
Настроил как мне нужно, сделал префаб.
На этот префаб повешал скрипт.

public class Zipper MonoBehaviour {
    public 
Vector3 groundPoint;

    
void Start () {
        
groundPoint=Player.targetP;
    }
    
    
void Update () {
        
float targetDistanceMin=0.1f;
        
Vector3 direction;
        
float distance;

        
direction groundPoint transform.position;
        
distance direction.magnitude;
        if (
distance targetDistanceMin)
        {
            
transform.position += direction.normalized * (distance targetDistanceMin)* Time.deltaTime*2.0f;
        }
        else
        {
            
Destroy(gameObject);
        }
    }

Суть такая: из другого скрипта префаб получает цель и летит до неё, когда долетит удаляется.

Однако когда префаб долетает до цели он не удаляется (в иерархии тоже), частицы продолжают генерироваться. Если же вместо системы частиц использовать другой префаб, например сделанный из модели, то всё работает как надо.

Вопрос, почему так? Что не верно?
__________________
(Offline)
 
Ответить с цитированием
Старый 27.01.2013, 12:40   #1172
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

Может DestroyImmediate поможет?
Еще можно попробовать выключить партиклы перед удалением типа ParticleSystem.Stop
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mauNgerS (27.01.2013)
Старый 27.01.2013, 13:57   #1173
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

mauNgerS, ты уверен, что дестрой вызывается?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mauNgerS (27.01.2013)
Старый 27.01.2013, 14:02   #1174
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

Кстати,-да. Может размер объекта на котором частицы велик? Тогда расстояние до цели никогда не станет меньше targetDistanceMin. Вставьте дебаг рядом с destroy
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mauNgerS (27.01.2013)
Старый 27.01.2013, 15:56   #1175
mauNgerS
Разработчик
 
Аватар для mauNgerS
 
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений
(для 670 пользователей)
Ответ: Вопросы от новичка

Спасибо, всё верно проблема была в расчёте дистанции.

Другой вопрос.
Как в этом же скрипте использовать ParticleSystem.Stop, ParticleSystem.Play и т.д.?
Чёт не получается.
__________________
(Offline)
 
Ответить с цитированием
Старый 27.01.2013, 16:08   #1176
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

mauNgerS, в смысле не получается?
Черт!!! Редактирование файла в юнити похоже никак не сделать. И все из-за того, что после сохранения файла через NET'овский класс File, юнити видет не оригинал, а свою кэшированную копию.
А AssetDatabase.Refresh() просто виснет на моем измененном ассете. Да и если бы не вис, то долго работал.

И мой способ сериализации почему-то не всегда работает. После компиляции любого скрипта все типы сбрасываются на родительский.
(Offline)
 
Ответить с цитированием
Старый 27.01.2013, 16:14   #1177
mauNgerS
Разработчик
 
Аватар для mauNgerS
 
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений
(для 670 пользователей)
Ответ: Вопросы от новичка

mauNgerS, в смысле не получается?
Нужно сначала что-то типа GetComponent<ParticleSystem>???

И ещё изменение прозрачности можно сделать только анимированной текстурой? Или есть параметр alpha?
__________________
(Offline)
 
Ответить с цитированием
Старый 27.01.2013, 16:33   #1178
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

Нужно сначала что-то типа GetComponent<ParticleSystem>???
Необязательно.
Можно обращаться через particleEmitter и particleSystem.

Понял почему у меня моя сериализация иногда сбрасывалась.
Юнити после компиляции почему-то сбрасывает мой не сериализованный список. А мой редактор в OnDisable сериализует список.
Вообщем черт знает как это все сделать.
UPDATE
Все разобрался. Пока все нормально.
Достаточно загружать свою сериализацию в OnEnable скрипта ScriptableObject.
А сохранять можно в OnDisable редактора.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mauNgerS (27.01.2013)
Старый 27.01.2013, 16:40   #1179
Lestar
Бывалый
 
Аватар для Lestar
 
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений
(для 880 пользователей)
Ответ: Вопросы от новичка

2.Color (r , g , b , a) , где a- альфа
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mauNgerS (27.01.2013)
Старый 27.01.2013, 19:51   #1180
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

Интересно как юнити определяет, что какой-то файл был изменен в браузере винды?
Как бы файл переписать, чтобы юнити это заметил и перекэшировал сам.

Разобрался с сохранением файла. Все работает, если сохранять по нажатию кнопки, а не в OnDisable. Не очень хорошо т.к. можно забыть нажать на кнопку или тупо нечаянно переключится на другой объект и все потерять. Не понятно почему в OnDisable нельзя делать импорт файла.
	private void Save() {
		string projectPath = Application.dataPath;
		projectPath = projectPath.Substring(0, projectPath.Length-"Assets".Length);
		string path = projectPath+AssetDatabase.GetAssetPath(asset);
		
		File.WriteAllText(path, text, Encoding.ASCII);
		AssetDatabase.ImportAsset( AssetDatabase.GetAssetPath(asset) );
	}
Но может есть какие-то идеи как дать понять юнити, что файл изменен?

Последний раз редактировалось WISHMASTER35, 27.01.2013 в 21:45.
(Offline)
 
Ответить с цитированием
Старый 28.01.2013, 16:04   #1181
Левша09
Оператор ЭВМ
 
Регистрация: 28.12.2011
Сообщений: 25
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы от новичка

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

if(Input.GetKeyDown(KeyCode.Space))
       
light.enabled = !light.enabled
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Radnk (28.01.2013)
Старый 28.01.2013, 16:19   #1183
Левша09
Оператор ЭВМ
 
Регистрация: 28.12.2011
Сообщений: 25
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы от новичка

Pax, спасибо.
(Offline)
 
Ответить с цитированием
Старый 28.01.2013, 16:44   #1184
Radnk
ПроЭктировщик
 
Аватар для Radnk
 
Регистрация: 17.07.2012
Сообщений: 118
Написано 25 полезных сообщений
(для 54 пользователей)
Ответ: Вопросы от новичка

Сообщение от Левша09 Посмотреть сообщение
Просьба не закидывать помидорами.
Тут так делать не принято
(Offline)
 
Ответить с цитированием
Старый 28.01.2013, 18:12   #1185
mauNgerS
Разработчик
 
Аватар для mauNgerS
 
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений
(для 670 пользователей)
Ответ: Вопросы от новичка

Вновь вопрос.

public Vector3 CameraPick() 
{
    
Vector3 groundPoint;
    
RaycastHit hit;
        
    
Ray ray targetCam.camera.ScreenPointToRay(Input.mousePosition);
    
Physics.Raycast(rayout hit);
    
groundPoint hit.point;
    return 
groundPoint;

Так я узнаю координаты точки под мышкой, а как узнать в какой объект я попал.
__________________
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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