|
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
27.01.2013, 12:01
|
#1171
|
Разработчик
Регистрация: 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
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Вопросы от новичка
Может DestroyImmediate поможет?
Еще можно попробовать выключить партиклы перед удалением типа ParticleSystem.Stop
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.01.2013, 13:57
|
#1173
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
mauNgerS, ты уверен, что дестрой вызывается?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.01.2013, 14:02
|
#1174
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Вопросы от новичка
Кстати,-да. Может размер объекта на котором частицы велик? Тогда расстояние до цели никогда не станет меньше targetDistanceMin. Вставьте дебаг рядом с destroy
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.01.2013, 15:56
|
#1175
|
Разработчик
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений (для 670 пользователей)
|
Ответ: Вопросы от новичка
Спасибо, всё верно проблема была в расчёте дистанции.
Другой вопрос.
Как в этом же скрипте использовать ParticleSystem.Stop, ParticleSystem.Play и т.д.?
Чёт не получается.
__________________
|
(Offline)
|
|
27.01.2013, 16:08
|
#1176
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
mauNgerS, в смысле не получается?
Черт!!! Редактирование файла в юнити похоже никак не сделать. И все из-за того, что после сохранения файла через NET'овский класс File, юнити видет не оригинал, а свою кэшированную копию.
А AssetDatabase.Refresh() просто виснет на моем измененном ассете. Да и если бы не вис, то долго работал.
И мой способ сериализации почему-то не всегда работает. После компиляции любого скрипта все типы сбрасываются на родительский.
|
(Offline)
|
|
27.01.2013, 16:14
|
#1177
|
Разработчик
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений (для 670 пользователей)
|
Ответ: Вопросы от новичка
mauNgerS, в смысле не получается?
|
Нужно сначала что-то типа GetComponent<ParticleSystem>???
И ещё изменение прозрачности можно сделать только анимированной текстурой? Или есть параметр alpha?
__________________
|
(Offline)
|
|
27.01.2013, 16:33
|
#1178
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
Нужно сначала что-то типа GetComponent<ParticleSystem>???
|
Необязательно.
Можно обращаться через particleEmitter и particleSystem.
Понял почему у меня моя сериализация иногда сбрасывалась.
Юнити после компиляции почему-то сбрасывает мой не сериализованный список. А мой редактор в OnDisable сериализует список.
Вообщем черт знает как это все сделать.
UPDATE
Все разобрался. Пока все нормально.
Достаточно загружать свою сериализацию в OnEnable скрипта ScriptableObject.
А сохранять можно в OnDisable редактора.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.01.2013, 16:40
|
#1179
|
Бывалый
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений (для 880 пользователей)
|
Ответ: Вопросы от новичка
2.Color (r , g , b , a) , где a- альфа
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.01.2013, 19:51
|
#1180
|
Бывалый
Регистрация: 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
|
Оператор ЭВМ
Регистрация: 28.12.2011
Сообщений: 25
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопросы от новичка
Просьба не закидывать помидорами. Подскажите, пожалуйста, как выключить/включить светильник?
|
(Offline)
|
|
28.01.2013, 16:06
|
#1182
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
if(Input.GetKeyDown(KeyCode.Space)) light.enabled = !light.enabled;
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
28.01.2013, 16:19
|
#1183
|
Оператор ЭВМ
Регистрация: 28.12.2011
Сообщений: 25
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопросы от новичка
Pax, спасибо.
|
(Offline)
|
|
28.01.2013, 16:44
|
#1184
|
ПроЭктировщик
Регистрация: 17.07.2012
Сообщений: 118
Написано 25 полезных сообщений (для 54 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от Левша09
Просьба не закидывать помидорами.
|
Тут так делать не принято
|
(Offline)
|
|
28.01.2013, 18:12
|
#1185
|
Разработчик
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений (для 670 пользователей)
|
Ответ: Вопросы от новичка
Вновь вопрос.
public Vector3 CameraPick() { Vector3 groundPoint; RaycastHit hit; Ray ray = targetCam.camera.ScreenPointToRay(Input.mousePosition); Physics.Raycast(ray, out hit); groundPoint = hit.point; return groundPoint; }
Так я узнаю координаты точки под мышкой, а как узнать в какой объект я попал.
__________________
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:35.
|