Четверг, 28 Марта 2024, 19:12

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » AddForce не работает
AddForce не работает
Knife_KillДата: Пятница, 24 Июля 2015, 17:55 | Сообщение # 1
частый гость
Сейчас нет на сайте
Здравствуйте, столкнулся с такой проблемой - в новой Юньке AddForce не работает как раньше, почему? И как сейчас можно записать?
Код
using UnityEngine;
using System.Collections;

public class Control : MonoBehaviour {

     public GameObject player;
     public float speed = 2f;
     public float jump = 1.5f;
     public bool jumping;

  // Use this for initialization
  void Start ()
     {
   
  }

     // Update is called once per frame

     void Update ()
     {
         if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow))
         {
             transform.Translate(Vector3.left * speed * Time.deltaTime, Space.Self);
         }

         else if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))
         {
             transform.Translate(Vector3.right * speed * Time.deltaTime, Space.Self);
         }

         if(Input.GetKey(KeyCode.W))
         {
             //rigidbody2D.AddForce(new Vector2(0f, jump)); - раньше работало
         }
   
  }
}


П.с. пробовал через GetComponent, но все равно не работает.
Код
GetComponent<Rigidbody2D>().AddForce(new Vector2(0f, jump));
кое-ктоДата: Пятница, 24 Июля 2015, 18:30 | Сообщение # 2
Сейчас нет на сайте
У тебя unity 5 ?




Моя группа
Knife_KillДата: Пятница, 24 Июля 2015, 18:52 | Сообщение # 3
частый гость
Сейчас нет на сайте
кое-кто, Да, 5.0.1f1
berilДата: Пятница, 24 Июля 2015, 22:24 | Сообщение # 4
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
ну в FixedUpdate нужно физику запихивать.

Цитата Knife_Kill ()
новой Юньке AddForce не работает как раньше, почему?

А щас как то работает? или вообще ничего не происзодит?

Код
    void FixedUpdate()
   {
    if(Input.GetKeyDown(KeyCode.W))
           {
      Debug.Log("work");
      gameObject.GetComponent<Rigidbody2D> ().AddForce (Vector2.up * 500);
      
           }   
            
    }

Все прекрасно работает




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
Knife_KillДата: Пятница, 24 Июля 2015, 22:40 | Сообщение # 5
частый гость
Сейчас нет на сайте
beril,
Код
rigidbody2D.AddForce(new Vector2(0f, jump));
- пишет ошибку в Юньке и в Visual Studio
Код
GetComponent<Rigidbody2D>().AddForce(new Vector2(0f, jump));
- ничего не происходит
berilДата: Пятница, 24 Июля 2015, 23:11 | Сообщение # 6
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Цитата Knife_Kill ()
- пишет ошибку в Юньке и в Visual Studio

в 5 версии нужно через getComponent

Цитата Knife_Kill ()
- ничего не происходит

GetComponent<Rigidbody2D> ().AddForce(new Vector2(0, jump), ForceMode2D.Force);
И массу Rigidbody2D уменьшить нужно до 0.01. Чем больше масса тем больше усилие нужно. А посколько jump = 1.5f массу больше 0.01 оно не поднимает




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
Knife_KillДата: Пятница, 24 Июля 2015, 23:27 | Сообщение # 7
частый гость
Сейчас нет на сайте
beril, Хммм, заработало.
Но почему если я пишу -
Код
gameObject.GetComponent<Rigidbody2D> ().AddForce (Vector2.up * 500);

Оно работает нормально, а если прописываю переменную Jump со значением 500, то оно не работает?
Код
gameObject.GetComponent<Rigidbody2D> ().AddForce (Vector2.up * Jump);

Не могу понять

Добавлено (24 июля 2015, 23:27)
---------------------------------------------
beril, А в целом, спасибо!

berilДата: Пятница, 24 Июля 2015, 23:35 | Сообщение # 8
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Цитата Knife_Kill ()
Не могу понять

чему равна Jump? я писал выше, чем больше масса ригибоди тем больше нужна сила

Цитата beril ()
переменную Jump со значением 500, то оно не работает?

все работает, я только,что проверил




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
seamanДата: Пятница, 24 Июля 2015, 23:35 | Сообщение # 9
старожил
Сейчас нет на сайте
Цитата
Оно работает нормально, а если прописываю переменную Jump со значением 500, то оно не работает?

Может потому что переменная называется не Jump, а jump?
MANMANAДата: Пятница, 24 Июля 2015, 23:36 | Сообщение # 10
почти ветеран
Сейчас нет на сайте
прочитай, что за ошибку пишет и все будет понятно.
если не понятно, то посмотри сюда.
Код
public float jump = 1.5f;  
...
gameObject.GetComponent<Rigidbody2D> ().AddForce (Vector2.up * Jump);

большие и маленькие буковки

Добавлено (24 июля 2015, 23:36)
---------------------------------------------
seaman, smile


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
Knife_KillДата: Пятница, 24 Июля 2015, 23:40 | Сообщение # 11
частый гость
Сейчас нет на сайте
MANMANA, seaman, В коде я писал с маленькой, вы уж не подумайте biggrin
beril, Действительно, все дело в массе. Спасибо
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » AddForce не работает
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг