Результаты поиска
| |
ArtemS | Дата: Пятница, 15 Сентября 2017, 17:32 | Сообщение # 101 | Тема: Префаб канваса |
почетный гость
Сейчас нет на сайте
| Может кто сказать как сделать префаб канваса, а то у меня все слетает. Пытаюсь сделать полоску здоровья для врага используя канвас и в нем создаю слайдер. пока слайдер на сцене все работает, стоит сделать его префаб и он не появляется.. делаю его ниже описываю его положение относительно объекта на котором скрипт висит со здоровьем. он создается на враге, но вне канваса и поэтому не отображается.
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Вторник, 12 Сентября 2017, 17:57 | Сообщение # 102 | Тема: Вынести переменную из столкновения. |
почетный гость
Сейчас нет на сайте
| Vuvk, это понятно, но если у меня снаряд движется не только прямо, а допусти самонаводящаяся ракета, что-то что движется по дуге, имеет разрывной эффект, может 3 пули в разные стороны летит, получается мне нужно будет создавать EnemyShotBullet, EnemyShoRocket, EneyShotAOE и тд и тп и все эти скрипты вешать на игрока и точно так же с противником, если по ходу игры я смогу в менюшке изменять оружие и тем самым меняя основной скрипт снарядов, то мне нужно вешать скрипы всех снарядов на всех врагов....короче я понял..буду делать отдельно скрипт на урон и на все остальные свойства снарядов) спасибо за помощь
хуяк, хуяк и в продакшн
Сообщение отредактировал ArtemS - Вторник, 12 Сентября 2017, 18:46 |
|
| |
ArtemS | Дата: Вторник, 12 Сентября 2017, 12:09 | Сообщение # 103 | Тема: Вынести переменную из столкновения. |
почетный гость
Сейчас нет на сайте
| Цитата Vuvk ( ) В чем проблема-то?
Код shot = other.gameObject.GetComponent<EnemyShot>();
тут надо будет задавать объект столкновения, иначе он будет не видеть объект, получается пишу
Код public EnemyShot shot;
Отсюда и вытекает мой вопрос. если у меня 2 разных врага (каждый имеет свой префаб пули, который отличается по скрипту атаки: траектория движения пули, тип атаки и прочие характеристики разные). То мне придется добавить 2 таких объекта на игрока, а если у меня таких 20 врагов, то придется добавить все 20 объектов на игрока. И на все прифабы всех врагов мне придется вешать все возможные виды атак моего игрока. Вот я и спрашиваю, можно как-то этого избежать или страдать и вешать хренову тучу объектов?
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Вторник, 12 Сентября 2017, 04:13 | Сообщение # 104 | Тема: Вынести переменную из столкновения. |
почетный гость
Сейчас нет на сайте
| Цитата Vuvk ( ) Подозреваю, что EnemyShot - это скрипт на пуле?
Блин!! я же пытаюсь взять переменную с противника, а не с пули!!!!
А можно как-то все пули объединить, или нужно будет на объект вешать все префабы пуль чтобы он брал с нихъ значение "damage" ? ....или придется создавать один скрипт под все пули сразу...как-то это некрасиво
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Понедельник, 11 Сентября 2017, 18:14 | Сообщение # 105 | Тема: Вынести переменную из столкновения. |
почетный гость
Сейчас нет на сайте
| Есть код
Код public class Health : MonoBehaviour {
public float health; float damage; public EnemyShot shot;
void OnTriggerEnter2D (Collider2D other) { if (other.tag == "EnemyBullets") { EnemyShot shot = GetComponent<EnemyShot>(); damage = shot.BulletDamage;
Debug.Log("enemy" + damage);
health -= damage; if (health <= 0) { Destroy(gameObject); } Destroy(other.gameObject); } } }
Как можно вытащить переменную урона из пули, а то у меня пишет что объект не найден ?
NullReferenceException: Object reference not set to an instance of an object Health.OnTriggerEnter2D (UnityEngine.Collider2D other) (at Assets/SpaceAdventures/Scripts/Health.cs:17)
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Понедельник, 28 Августа 2017, 06:52 | Сообщение # 106 | Тема: Бафы и как их реализовать |
почетный гость
Сейчас нет на сайте
| Спасибо всем огромное за советы!!!! Добавлено (28 августа 2017, 06:52) --------------------------------------------- terami, скинь ,пожалуйста, хотелось бы посмотреть на твое решение вопроса
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Вторник, 15 Августа 2017, 10:45 | Сообщение # 107 | Тема: Бафы и как их реализовать |
почетный гость
Сейчас нет на сайте
| Хочу узнать правильно ли я делаю. Есть баф. Допустим он длится 5 сек.
Код float bufTimer; float bufTime = 5;
FixedUpdate() { bufTimer = bufTime + Time.time;
if (bufTimer > Time.time) {<свойства бафа>} }
Вопрос собственно в том, а если ли метод который просто говорит держать какое-то свойство определенный отрезок времени ? Что-то типа <метод>.<сколько секунд>.<свойство бафа>
хуяк, хуяк и в продакшн
Сообщение отредактировал ArtemS - Вторник, 15 Августа 2017, 10:45 |
|
| |
ArtemS | Дата: Вторник, 08 Августа 2017, 12:33 | Сообщение # 108 | Тема: [Unity][FPS] Как можно сделать джетпак в FPS |
почетный гость
Сейчас нет на сайте
| tduk, http://websketches.ru/blog/igra-kak-jetpack-joyride-unity2d-1
думаю в этих уроках ты найдешь ответ на свой вопрос
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Понедельник, 07 Августа 2017, 18:41 | Сообщение # 109 | Тема: 2Д прицел |
почетный гость
Сейчас нет на сайте
| CleverRus, короче, фишка в том что слежение идет нижней стороной пушки, вот он и критится на 90 по У и слежение идет с .right и отсдает на 90 по Х. Надо разбираться как задавать в LookAt нужную сторону для слежения. думаю использовать ray но пока еще не знаю как это сделать грамотно (ну или хоть как - нибудь). вот) Добавлено (07 августа 2017, 18:41) --------------------------------------------- в общем вот скрипт с мнгновенным слежением за прицелом.
Код Vector3 AIM; Vector3 player_pos;
void FixedUpdate () { AIM = Input.mousePosition; player_pos = Camera.main.WorldToScreenPoint(this.transform.position);
AIM.x = AIM.x - player_pos.x; AIM.y = AIM.y - player_pos.y;
float angle = Mathf.Atan2(AIM.x, AIM.y) * Mathf.Rad2Deg; this.transform.rotation = Quaternion.Euler(new Vector3(0, 0, -angle)); }
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Четверг, 03 Августа 2017, 08:50 | Сообщение # 110 | Тема: 2Д прицел |
почетный гость
Сейчас нет на сайте
| CleverRus, смотрел. в начале rotation 0 0 0, только включаю и сразу поворот идет по У на 90. причем когда курсор в 1 и 4 четверти то 90, а когда в 2 и 3 то -90. Попробывал с Vector3,там Z по камере идет -10, а оружие на Z = 0, стал вычитать из Z высоту камеры, все равно вертится по У. Поиграл с осями в Vector3, нечего толкового не получилось. Щас на работе, приду домой вечером попробую перед LookAt y=0 или после него.
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Среда, 02 Августа 2017, 18:27 | Сообщение # 111 | Тема: 2Д прицел |
почетный гость
Сейчас нет на сайте
| Цитата CleverRus ( ) А не проще ли поменять иконку курсора через скрипт и просто отслеживать курсор?!
ну не про, извините)
щас буду смотреть как это реализовать.
Добавлено (02 августа 2017, 17:45) --------------------------------------------- CleverRus, а у тебя нету случайно скрипта примера ? все что нашел по замене текстуры идет через GUI.Label - а это по сути то же самое что и у меня. масшбаты плоскостей отличаются и мое оружие переворачивается (почему то ровно на 90 градусов) и выстрел идет хер знает куда(
Добавлено (02 августа 2017, 18:20) --------------------------------------------- Вот оружие поворачивается на 90 по У и я понять не могу с чем это связано. в коде ни каких вращений на gameObject нету.
http://s1.uploadpics.ru/images/ZkzKE6dKFG.png
если отключаю слежение через LookAt то оружие стоит нормально.Добавлено (02 августа 2017, 18:27) --------------------------------------------- как в единой системе с игроком взять координату нашел
Код AIM = Camera.main.ScreenToWorldPoint(Input.mousePosition);
но поворот вокруг У все равно остался
хуяк, хуяк и в продакшн
Сообщение отредактировал ArtemS - Среда, 02 Августа 2017, 18:21 |
|
| |
ArtemS | Дата: Вторник, 01 Августа 2017, 18:51 | Сообщение # 112 | Тема: 2Д прицел |
почетный гость
Сейчас нет на сайте
| Пытаюсь сделать так, чтобы пуля появлялась в направление прицела. Прицел сделан как Canvas -> Image который отслеживает положение мышки
Код public Vector2 mousePosition; void Update () {
mousePosition = Input.mousePosition; transform.position = mousePosition;
К игроку прикреплен "ребенок" - оружие со скриптом слежения за прицелом
Код AIM_pos = Vector2.Lerp(AIM_pos, AIM.position, Time.deltaTime * AIM_speed); transform.LookAt(AIM_pos);
Проблема в том, что у канваса совершенно другие координаты, которые сильно отличаются от его положения на экране игры и выстрел происходит хрен знает куда. Подскажите как сделать так , что прицел имел схожие в масштабе координаты что и игрок
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Понедельник, 03 Июля 2017, 04:00 | Сообщение # 113 | Тема: Дочерние объекты и как с ними работать... |
почетный гость
Сейчас нет на сайте
| Цитата shizofren ( ) shizofren
Спасибо большое
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Воскресенье, 02 Июля 2017, 18:16 | Сообщение # 114 | Тема: Дочерние объекты и как с ними работать... |
почетный гость
Сейчас нет на сайте
| Здравствуйте! Может кто объяснить как грамотно передать направление на дочерний объект. Есть объект (например корабль), я к нему прикрепил объект (оружие). По идеи направление с главного объекта должно было передавать на дочерний, но у меня почему то все пули летят в мировой системе координат строго вверх. Может кто сказать, как пуле дать направление полета в сторону носа корабля ?
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Среда, 14 Июня 2017, 18:04 | Сообщение # 115 | Тема: Движение космического корабля |
почетный гость
Сейчас нет на сайте
| Цитата seaman ( ) Что Вы собственно исправили?
Код void FixedUpdate() {
if (Input.GetKey(KeyCode.W)) //вперед rb.AddForce(rb.transform.up * speed);
if (Input.GetKey(KeyCode.S)) //назад rb.AddForce(-rb.transform.up * speed);
if (Input.GetKey(KeyCode.A) && Input.GetMouseButton(1)) //влево rb.AddForce(-rb.transform.right * speed);
if (Input.GetKey(KeyCode.D) && Input.GetMouseButton(1)) //вправо rb.AddForce(rb.transform.right * speed);
if (!Input.GetMouseButton(1)) { Quaternion rotate = Quaternion.AngleAxis(-inputX * speedRotation, Vector3.forward); //вращение rb.transform.rotation *= rotate; } }
а вопрос такой,как корректно сделать движение назад и поворот одновременно (на подобии движения автомобиля), при левой клавише+назад корабль летел влево? Я нашел решение, но мне кажется слишком сложно и мудрено с if оператором.. менять знак оси если одновременно S+A(D) нажаты. Собственно все эти проверки для того, чтобы можно было двигаться как стрейфом, так и просто вращаться, а если сюда еще и смену знака при движении назад добавить, то код будет ужасно выглядеть,а он и щас не блещет)
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Среда, 14 Июня 2017, 10:54 | Сообщение # 116 | Тема: Движение космического корабля |
почетный гость
Сейчас нет на сайте
| Цитата seaman ( ) Ни разу не видел чтобы в одном скрипте так смешивали физику и простое перемещение. Что за глупость - устанавливать позицию и тут же прикладывать силу...
я же сказал, что исправил этот косяк.скрипт не мой, такое на просторах тырнета видел. лучше подскажите что дальше делать)
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Вторник, 13 Июня 2017, 18:11 | Сообщение # 117 | Тема: Движение космического корабля |
почетный гость
Сейчас нет на сайте
| Народ подскажите ,пожалуйста, пытался сделать управление под действием сил, чтобы скорость постепенно набиралась и убывала, а получилось что попало. Корабль начинает лететь в указанном направлении, а потом его уносит вперед какая-то сила, не могу врубиться где накосячил. Linear drag пытался менять, нечего не помогло и на 0, и на других значениях улетает!!! Если этот же код использую без AddForce то все идеально работает....
Код using UnityEngine; using System.Collections;
public class PlayerController : MonoBehaviour { public float speedRotation = 1.2f; public float speed = 0.05f; float inputX; float inputY; Rigidbody2D rb;
void Start() { rb = GetComponent<Rigidbody2D>(); }
void Update() {
//извлечение информации оси inputX = Input.GetAxis("Horizontal");//лево-право inputY = Input.GetAxis("Vertical"); //верх-низ
} void FixedUpdate() {
if (Input.GetKey(KeyCode.W)) //вперед rb.AddForce(rb.transform.position += rb.transform.up * speed);
if (Input.GetKey(KeyCode.S)) //назад rb.AddForce(rb.transform.position -= rb.transform.up * speed);
if (Input.GetKey(KeyCode.A) && Input.GetMouseButton(1)) //влево rb.AddForce(rb.transform.position -= rb.transform.right * speed);
if (Input.GetKey(KeyCode.D) && Input.GetMouseButton(1)) //вправо rb.AddForce(rb.transform.position += rb.transform.right * speed);
if (!Input.GetMouseButton(1)) { Quaternion rotate = Quaternion.AngleAxis(-inputX * speedRotation, Vector3.forward); //вращение rb.transform.rotation *= rotate; } }
} Добавлено (13 июня 2017, 18:03) --------------------------------------------- ыыы нашел!! нужно было убрать первое слагаемое и просто оставить знак) Добавлено (13 июня 2017, 18:11) --------------------------------------------- Тогда другой вопрос) как корректно сделать движение назад и поворот одновременно (на подобии движения автомобиля), при левой клавише+назад корабль летел влево. Я нашел решене, но мне кажется слишком сложно и мудрино с if оператором.. менять знак оси если одновременно S+A(D) нажаты
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Пятница, 05 Мая 2017, 03:55 | Сообщение # 118 | Тема: Устаревшие команды. obsolete и как с этим бороться ? |
почетный гость
Сейчас нет на сайте
| Цитата Vostrugin ( ) Чем они тебе жить мешают?)
боюсь что со временем перестанут работать.
Цитата Wite ( ) исправлять на обновленные функции.
так вот я и хочу научиться их исправлять и прошу помощи. хотя бы пример такого исправления.
похоже понял. надо заменить .fixedAngle на .constraints
хуяк, хуяк и в продакшн
Сообщение отредактировал ArtemS - Пятница, 05 Мая 2017, 05:28 |
|
| |
ArtemS | Дата: Четверг, 04 Мая 2017, 17:27 | Сообщение # 119 | Тема: Устаревшие команды. obsolete и как с этим бороться ? |
почетный гость
Сейчас нет на сайте
| Товарищи, подскажите как или где можно посмотреть как исправить предупреждения типа
'Rigidbody2D.fixedAngle' is obsolete: 'The fixedAngle is no longer supported. Use constraints instead.'
строчка в коде такая
body = GetComponent<Rigidbody2D>(); body.fixedAngle = true;
Понятно что сказано про то , что это уже устарело и бла-бла-бла, с подобными ошибками сталкиваюсь не в первый раз и хочется научиться их исправлять)
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Среда, 03 Мая 2017, 04:03 | Сообщение # 120 | Тема: поменять цвет текста, когда мышка над текстом |
почетный гость
Сейчас нет на сайте
| а как сделать подсвечиваемую рамку ? или чтобы включалась анимация ?)
хуяк, хуяк и в продакшн
|
|
| |
|