Смотрим AddForce. Что там первым параметром? А Вы что передаете?
Ну... первый параметр вектор,я так думал что это координаты либо цели либо персонажа.Пробовал оба варианта...не то... Теперь думаю вот что это координаты точки от куда будет направлена сила...ну эт ток мои догадки.. А про линейную алгебру взял на заметку, на работе почитаю. Спасибо
Здравствуйте, возникла проблема при создании скрипта стрельбы, а именно - пуля создается, но не летит.
Код
using UnityEngine; using System.Collections;
public class SpawnBullet : MonoBehaviour {
public int forceSpeed = 800; public GameObject bullet;
// Use this for initialization void Start() {
}
// Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Space)) { Transform prefabInstance = (Transform)Instantiate(bullet, GameObject.Find("Player").transform.position, Quaternion.identity); // prefabInstance.GetComponent<Rigidbody2D>().AddForce(transform.right * 800);
Самое интересное, если я "prefabInstance.GetComponent<Rigidbody2D>().AddForce(transform.forward * 800);" прописываю в Update, то код запускается, но ничего не происходит (т.к. физика прописывается в FixUpdate), но если я пропишу эту же строчку в FixUpdate, то пишет что-то типа "имя prefabInstance не существует в данном контексте". Как это исправить? P.s. пытался прописать private GameObject prefabInstance = null; но ничего не произошло, пуля так же спавнится, но не летит (тупо падает). Так же, на пуле масса 0.1, так что, дело не в этом.
FixUpdate, то пишет что-то типа "имя prefabInstance не существует в данном контексте". Как это исправить?
Исправить отсутствие знаний можно только упорной учебой. Ты понимаешь, что объявил локальную переменную в методе Update ? prefabInstance. Просто объясни мне на основании какого умозаключения ты решил, что она есть в FixUpdate? КОНЕЧНО он напишет что префабинстанс не существует. И это так очевидно.
Использовать в Апдейтах ГетКомпонент - моветон и вредно. Делай рефы. Иначе он каждый кадр будет заниматься поиском ригидбоди в этом объекте. Пожалей машину. ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Вторник, 28 Июля 2015, 09:38
Это ivan2009 сижу с планшета на работе... прочитал я про линейную алгебру... написано что бы получить направление от точька А к точке Б нужно Б-А.. так и сделал. получил трансформ позишн патрона получил позишн моба отминусовал...сделал 2 варинта normalaized и нет. добавлял результат Б-А(как нормал так и не нормал) в первый параметр addForse летит патрон куда попало... уже пробовал и через чарактер контроллер через метод SimpleMove запускать, все раано летит куда попало... не могу понять в чем дело
кто имел дело с видео? мне нужно было небольшой ролик (800х600, fps=30, 120sec.) воткнуть в приложение (Win/WEB) это ведь делается текстурой? а запустить можно только скриптом - это решено.
2 вопроса: • как узнать о том что проигрывание дошло до конца? только счетчиком в Update()? • почему жутко упал FPS?? как слайдшоу - 5 кадров в секунду
Здравствуйте, в связи с тем, что у меня, в моем 2D проекте возникли проблемы с NavMesh'eм, то я решил попробовать сделать аналогичный платформер, но уже в 3D проекте (при создании проекта вместо 2D выбрать 3D), стоит ли это делать? И решится ли проблема с NavMesh'ем? (по идее должна) ... Уже сил нет возиться с этим NavMeshem в 2D проекте...
Здравствуйте.Я все с той же проблемой...Не могу настроить патрон что бы летел к цели... немного переделал систему поиска цели,думал может в ней проблема а оказывается нет патрон стабильно еле двигаясь ползет куда то в старону(не в сторону моба).Я уже пересмотрел кучу примеров ну вроде все как у меня...уже просто не знаю в каком направлении искать ошибку. Цель -> моб у меня моздается динамически и постоянно двигается персонаж тоже передвигается и на ПКМ должен создавать патрон с префаба который в свою очередь выбирает ближайшую цель и двигается к ней. Это я для конкретики написал чего хочу добится... ниже новый код выстрела
Код
using System.Collections.Generic;
public class MyPlayerShoot : MonoBehaviour { public GameObject bulletPrefab; public float bulletSpeed = 30; public float shootPause = 1; private float timeLastShoot = 0; public float shootRadius = 10; private GameObject currentTarget; // Use this for initialization void Start () { }
Исходник кода копировал в текстовый документ после по блютузу с ноута на планшет скидывал...вобщем после долгого пути с коментами такая борода...но на работу кода они не влияют так что думаю не страшно:-)
ForseMode уже пробовал в 3 вариантах Impuls, Force, VelocityChange патрон всеравно кривой... Подскажите в каком направлении искать ошибку или ошибки
Работает он только тогда, когда персонаж войдет в специальную зону и нажмет "E", как сделать что бы скрипт работал сразу, когда персонаж войдет в эту зону? (скрипт висит на противнике) Если я убираю строчку " if(Input.GetKeyDown(KeyCode.E))" - то при входе в зону ничего не происходит...
Мне тут подсказали вот что:
сделай локальную переменную bool pathEnter - и в Update проверяй - если она ложная, то: 1 - строй путь до таргета, 2 - устанавливай pathEnter в истину. В этом случае придется добавить еще одну проверку - точка предыдущего (при построении пути) таргета достигнута? Если да - то pathEnter = false; (это вызовет построение пути заново на следующем цикле Update).
Спасибо KamiRonin'у за это
Но как это можно сделать? А точней построить путь до таргета. Через Vector2.Distance? Если да, то как проверить вот это - точка предыдущего (при построении пути) таргета достигнута?
Сообщение отредактировал Knife_Kill - Среда, 29 Июля 2015, 17:19