Страница 1 из 1

Изменение скорости падения объекта

СообщениеДобавлено: 04 мар 2022, 12:04
antonxcm
Сложилась такая проблема: Мне нужно, чтобы изменялась скорость падения. Можете подсказать какой-нибудь скрипт для достижения этой цели?

Re: Изменение скорости падения объекта

СообщениеДобавлено: 04 мар 2022, 13:12
1100001001

Re: Изменение скорости падения объекта

СообщениеДобавлено: 04 мар 2022, 14:32
antonxcm
[quote="1100001001"]Я это уже смотрел. Мне нужен код для изменения в реальном времени

Re: Изменение скорости падения объекта

СообщениеДобавлено: 05 мар 2022, 11:27
1100001001
antonxcm писал(а):
1100001001 писал(а):Я это уже смотрел. Мне нужен код для изменения в реальном времени

Не хочешь использовать физику Unity3d? Тогда покажи как объект падает сейчас через код.

Re: Изменение скорости падения объекта

СообщениеДобавлено: 05 мар 2022, 17:07
antonxcm
1100001001 писал(а):
antonxcm писал(а):
1100001001 писал(а):Я это уже смотрел. Мне нужен код для изменения в реальном времени

Не хочешь использовать физику Unity3d? Тогда покажи как объект падает сейчас через код.
Я как раз использую физику unity3d мне нужно изменять силу гравитации через код

Re: Изменение скорости падения объекта

СообщениеДобавлено: 05 мар 2022, 23:13
waruiyume
Если используется 2д физика, то там у каждого ригилбоди своя гравитация, настраивай не хочу. Если это 3д, то просто добавляем к скорости какое-то значение в фиксед апдейте.

Re: Изменение скорости падения объекта

СообщениеДобавлено: 06 мар 2022, 02:58
1100001001
antonxcm писал(а):
1100001001 писал(а):
antonxcm писал(а):
1100001001 писал(а):Я это уже смотрел. Мне нужен код для изменения в реальном времени

Не хочешь использовать физику Unity3d? Тогда покажи как объект падает сейчас через код.
Я как раз использую физику unity3d мне нужно изменять силу гравитации через код


Как вариант - изменять гравитацию объекта.
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{
    private Rigidbody2D m_rb;
   
    // Start is called before the first frame update
    void Start()
    {
        m_rb = this.GetComponent<Rigidbody2D>();
    }

    // Update is called once per frame
    void FixedUpdate()
    {
        m_rb.gravityScale += 0.0001f;
    }
}
 


Другой вариант установить гравитацию в 0 и изменять саму скорость объекта
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{
    private Rigidbody2D m_rb;
   
    // Start is called before the first frame update
    void Start()
    {
        m_rb = this.GetComponent<Rigidbody2D>();
    }

    // Update is called once per frame
    void FixedUpdate()
    {
        m_rb.velocity = new Vector2(m_rb.velocity.x,m_rb.velocity.y-0.01f);
    }
}