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)

pax 10.08.2014 15:34

Ответ: Толчок
 
1. Не понятно на каком объекте этот скрипт.
2. Если такой скрипт на игроке, то он применяет силу к игроку.
3. Для поиска врагов можно использовать теги. Наприер если всем врагам назначить тег Enemy, то потом можно получить все объекты с этим тегом http://docs.unity3d.com/ScriptRefere...tsWithTag.html и применить к ним что-то. Например силу взрыва.
4. Если опираться на твой подход, то применить к врагу силу можно так:
PHP код:

GameObject.Find("enemy1").rigidbody.AddExplosionForce(100,transform.position,10); 

Шутки мы понимаем, но нормальные шутки

6082asil 11.08.2014 02: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[] Enemies = GameObject.FindGameObjectsWithTag("enemy");
                        foreach (GameObject enemy in Enemies) {
                                GetComponent<AIFollow>().enabled = !GetComponent<AIFollow>().enabled;
                                rigidbody.AddExplosionForce(10,transform.position,5);
                        }
                }
        }
}

После компиляции:
Assets/Handmade/Enemy/spacebarImpulse.cs(18,45): warning CS0219: The variable `enemy' is assigned but its value is never used

При нажатии на пробел:
NullReferenceException: Object reference not set to an instance of an object
spacebarImpulse.Update () (at Assets/Handmade/Enemy/spacebarImpulse.cs:19)

Mr_F_ 11.08.2014 02:40

Ответ: Толчок
 
ну не будь дураком.

Цитата:

foreach (GameObject enemy in Enemies) {
GetComponent<AIFollow>().enabled = !GetComponent<AIFollow>().enabled;
rigidbody.AddExplosionForce(10,transform.position, 5);
}
ты берёшь компоненты AIFollow и rigidbody у вызывающего скрипта, у котрого их нет.
ты делаешь цикл по врагам и НЕ ЮЗАЕШЬ объект enemy.

6082asil 11.08.2014 02:50

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

                        foreach (GameObject enemy in Enemies) {
                                enemy.GetComponent<AIFollow>().enabled = !GetComponent<AIFollow>().enabled;
                                enemy.rigidbody.AddExplosionForce(10,transform.position,5);
                        }

Так чтоли? Кажется, нет, потому что так все равно не работает.

Цитата:

ну не будь дураком.
Это между прочим не так-то просто.

Mr_F_ 11.08.2014 03:05

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

= !GetComponent<AIFollow>().enabled;
ну а тут почему забыл?

6082asil 11.08.2014 03:22

Ответ: Толчок
 
Ох..ну вот, я ведь сказал, что это непросто. с:

Ну..теперь просто ничего не происходит. Вернее, они не отталкиваются, а просто наклоняются в сторону игрока.

Mr_F_ 11.08.2014 03:29

Ответ: Толчок
 
больше силу попробуй ставить

6082asil 11.08.2014 03:38

Ответ: Толчок
 
Бинго! Как жахнуло-то. с:
Большое спасибо, взрыв сам работает.
Но вы бы не могли мне еще объяснить почему, когда я нажимаю второй раз на пробел (ну, скрипты обратно включаются), то все враги встают на те места, откуда улетели?
P.S.: A* Pathfinding Project...кажется, в нем причина..вы случаем не имели с ним дело?

pax 11.08.2014 06:47

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

Сообщение от Mr_F_ (Сообщение 285226)
ну не будь дураком.

Mr_F_ пожалуйста, тоже не надо таких выражений.

Оффтоп удален.

6082asil 11.08.2014 19:36

Ответ: Толчок
 
Ну так что, никто не проконсультирует?

pax 11.08.2014 23:31

Ответ: Толчок
 
Вероятно никто не использует эту систему поиска путей здесь. Скорее всего тебе надо для каждого объекта после взрыва пересчитать позицию на сетке навигации, а потом заново включать поиск пути к игроку.


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

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