Elezthem
@Elezthem
Full Stack Developer

Как сделать чтобы квадратик менял гравитацию когда прикасается к порталу?

Вот скрипт, но ничего не происходит, как сделать чтобы игрок менял гравитацию и летел вверх?
using UnityEngine;

public class GravitySwitch : MonoBehaviour
{
    public float gravityMultiplier = 2.0f; // Множитель гравитации при соприкосновении

    private void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            // Получаем текущее значение гравитации
            Vector3 currentGravity = Physics.gravity;

            // Изменяем только вертикальную компоненту гравитации
            currentGravity.y *= gravityMultiplier;

            // Устанавливаем новое значение гравитации
            Physics.gravity = currentGravity;
        }
    }
}
  • Вопрос задан
  • 73 просмотра
Решения вопроса 2
AshBlade
@AshBlade Куратор тега C#
Просто хочу быть счастливым
Может вместо 2.0f; писать -2.0f;.
Ты же все-таки в противоположном направлении хочешь лететь
Ответ написан
Elezthem
@Elezthem Автор вопроса
Full Stack Developer
Крч вот самый простой код
using UnityEngine;

public class PortalScript : MonoBehaviour
{
    Rigidbody2D rb;

    private void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }
    private void OnCollisionEnter2D(Collision2D other)
    {
        if (other.gameObject.tag == "Portal")
        {
            rb.gravityScale *= -1;
        }

        if (other.gameObject.tag == "GravitySwitch")
        {
            rb.gravityScale = 1;
        }
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы