forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Физика (http://forum.boolean.name/forumdisplay.php?f=168)
-   -   Толчок (http://forum.boolean.name/showthread.php?t=19350)

6082asil 09.08.2014 18:17

Толчок
 
Здравствуйте. Есть главный объект - "игрок"; за ним ходят "враги". Если их много, то они окружают "игрока", и он не может сдвинуться с места, вот.
Хочу сделать так, чтобы при нажатии на Пробел, например, все "враги" отталкивались от "игрока" на определенное расстояние.

Ну так вот, как это сделать?

Arton 09.08.2014 21:29

Ответ: Толчок
 

Я думал игра про это:


6082asil 09.08.2014 21:47

Ответ: Толчок
 
Я подозревал, что так кто-то подумает..
Ну а по теме что-то есть?

Andvrok 09.08.2014 22:38

Ответ: Толчок
 
http://docs.unity3d.com/ScriptRefere...sionForce.html
Это если с физикой делать.

6082asil 09.08.2014 23:38

Ответ: Толчок
 
А если без нее? мне она как-то не особо нужна. Лишний геморрой с ней.

Andvrok 09.08.2014 23:51

Ответ: Толчок
 
А если без неё, то находишь все объекты в радиусе вокруг игрока, вычисляешь вектор по направлению от игрока и двигаешь по этому вектору.

6082asil 10.08.2014 04:20

Ответ: Толчок
 
Ладно..давайте с физикой все-таки попробуем разобраться.
AddExplosionForce не работает, вот.

Andvrok 10.08.2014 04:25

Ответ: Толчок
 
На врагах ригидбоди висит?

6082asil 10.08.2014 12:47

Ответ: Толчок
 
Конечно, епт. "Ты за меня придурка не держи" (с)

tirarex 10.08.2014 13:10

Ответ: Толчок
 
Я не работаю с юнити но : Поиграй с массой тел и меняй типы прилагаемых сил.

pax 10.08.2014 13:36

Ответ: Толчок
 
Цитата:

Сообщение от 6082asil (Сообщение 285188)
Конечно, епт. "Ты за меня придурка не держи" (с)

Первое предупреждение, еще одно и бан за оскорбление.

6082asil 10.08.2014 13:58

Ответ: Толчок
 
Вот до толчка.

Вот после (ну или во время него).

Ну то есть, они как бы покосились чуть-чуть и все, вот.
-----
О.о
Вот это да, кто кого оскорбил-то?

pax 10.08.2014 15:12

Ответ: Толчок
 
Картинки ничего не показывают. Покажи состав компонентов на врагах и сам скрипт применения сил. Тогда будет понятно почему не работает.

Цитата:

Сообщение от 6082asil (Сообщение 285192)
О.о
Вот это да, кто кого оскорбил-то?

Учитесь нормально общаться, с взаимным уважением. На вполне адекватный вопрос, Вы дали не адекватный ответ, который можно посчитать личным оскорблением. Поэтому получили предупреждение.

6082asil 10.08.2014 15:25

Ответ: Толчок
 
Код:

using UnityEngine;
using System.Collections;

[RequireComponent (typeof (Rigidbody))]

public class spacebarImpulse : MonoBehaviour {

       

        void Start () {
               
        }

        void Update () {
                if(Input.GetKeyDown(KeyCode.Space)) {
                        GameObject.Find("astar").GetComponent<AstarPath>().enabled = !GameObject.Find("astar").GetComponent<AstarPath>().enabled;
                        GameObject.Find("enemy1").GetComponent<AIFollow>().enabled = !GameObject.Find("enemy1").GetComponent<AIFollow>().enabled;
                        GameObject.Find("enemy2").GetComponent<AIFollow>().enabled = !GameObject.Find("enemy2").GetComponent<AIFollow>().enabled;
                        GameObject.Find("enemy3").GetComponent<AIFollow>().enabled = !GameObject.Find("enemy3").GetComponent<AIFollow>().enabled;
                        GameObject.Find("enemy4").GetComponent<AIFollow>().enabled = !GameObject.Find("enemy4").GetComponent<AIFollow>().enabled;
                        GameObject.Find("enemy5").GetComponent<AIFollow>().enabled = !GameObject.Find("enemy5").GetComponent<AIFollow>().enabled;
                        GameObject.Find("enemy6").GetComponent<AIFollow>().enabled = !GameObject.Find("enemy6").GetComponent<AIFollow>().enabled;
                        GameObject.Find("enemy7").GetComponent<AIFollow>().enabled = !GameObject.Find("enemy7").GetComponent<AIFollow>().enabled;
                        GameObject.Find("enemy8").GetComponent<AIFollow>().enabled = !GameObject.Find("enemy8").GetComponent<AIFollow>().enabled;
                        GameObject.Find("enemy9").GetComponent<AIFollow>().enabled = !GameObject.Find("enemy9").GetComponent<AIFollow>().enabled;
                        rigidbody.AddExplosionForce(100,transform.position,10);
                }
        }
}

Вот скрипт.
-----
Ну с одной стороны, серьезный настрой, это конечно хорошо, а с другой - ну вы чего, шуток не понимаете чтоли?

Mr_F_ 10.08.2014 15:32

Ответ: Толчок
 
Цитата:

rigidbody.AddExplosionForce(100,transform.position ,10);
ригидбоди чей? ты даёшь пинок объекту, на котором скрипт, из центра его же самого.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot