Iskinematic unity что это
Перейти к содержимому

Iskinematic unity что это

  • автор:

Проблема с кодом Unity

я через левую кнопку мыши в коде даю обьекту силу(Rigidbody), и так же действует проверка на земле игрок — или нет. Но сила не применяется при нажатии левой кнопкой мыши Начал изучать геймдев в этом году зимой, не совсем все знаю, поэтому если это легко решить, можно просто ответ сказать что делать? Код:

using System.Collections; using System.Collections.Generic; using UnityEngine; public class Jump : MonoBehaviour < public bool isGrounded; public Rigidbody rb; void Start() < isGrounded = true; >void FixedUpdate() < if(isGrounded == true) < if(Input.GetMouseButton(0)) < rb.AddForce(0f, 100f, 0f); isGrounded = false; rb.isKinematic = false; >> > private void OnCollisionEnter(Collision collision) < if(collision.gameObject.tag == "Ground") < isGrounded = true; rb.isKinematic = true; >> > 

Отслеживать

задан 11 мая 2022 в 22:42

31 7 7 бронзовых знаков

Ты сначала пытаешься применить силу к телу, на которое не воздействует физика, а потом включаешь это воздействие физики, естественно оно не будет работать. В условии, где проверяешь нажатие кнопки, перемести isKinematic выше, чем AddForce.

Rigidbody.isKinematic

Благодарим вас за то, что вы помогаете нам улучшить качество документации по Unity. Однако, мы не можем принять любой перевод. Мы проверяем каждый предложенный вами вариант перевода и принимаем его только если он соответствует оригиналу.

Ошибка внесения изменений

По определённым причинам предложенный вами перевод не может быть принят. Пожалуйста попробуйте снова через пару минут. И выражаем вам свою благодарность за то, что вы уделяете время, чтобы улучшить документацию по Unity.

Ваше имя Адрес вашей электронной почты Предложение * Разместить предложенное
public var isKinematic : bool;
public bool isKinematic ;

Описание

Контролирует влияние физики на твердое тело.

Если isKinematic активен, силы, столкновения и суставы больше не повлияют на физическое тело. Изменение transform.position не позволит целиком контролировать физическое тело анимацией или из скрипта. Кинематические тела также оказывают воздействие на движение других физических тел через коллизии или суставы. суставом можно соединить кинематическое тело с нормальным физическим телом и тело будет сковано движением кинематического тела. Кинематические твердые тела также особенно полезны для персонажей, которые обычно приводятся в действие анимацией, но определенные события могут быстро обратить их в рэгдолл (установив isKinematic в false).

var rb: Rigidbody;

function Start() < rb = GetComponent.(); >

function EnableRagdoll() < // Let the rigidbody take control and detect collisions. rb.isKinematic = false; rb.detectCollisions = true; >

function DisableRagdoll() < // Let animation control the rigidbody and ignore collisions. rb.isKinematic = true; rb.detectCollisions = false; >
using UnityEngine; using System.Collections;

public class ExampleClass : MonoBehaviour < public Rigidbody rb; void Start() < rb = GetComponent(); > void EnableRagdoll() < rb.isKinematic = false; rb.detectCollisions = true; >void DisableRagdoll() < rb.isKinematic = true; rb.detectCollisions = false; >>

Kinematic Rigidbody vs no rigidbody

Есть ли какая то разница с точки зрения обработки столкновений, если у объекта есть rigidbody с isKinematic true, или если у объекта нет Rigidbody (коллайдер и там и там есть), есть разница или в обоих случаях тело рассматривается как тело с беск массой и моментом инерции?

Добавлено через 1 час 25 минут
А, ещё можно заморозить все оси движения и вращения, так что тут тоже узнать бы в чем отличие

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Rigidbody
Форумчанам привет! Нужна помощь! Есть куб и есть плоскость, на куб повешен rigidbody, но куб не.

Rigidbody
Есть модель автомобиля. На модельке Rigidbody и mesh colider. Пытаюсь написать скрипт езды(С#). Не.

Скольжение Rigidbody
Суть такова: имеется один статичный куб и несколько с rigidbody. Почему-то когда куб с rigidbody.

Не двигается rigidbody
Здравствуйте! Создал куб, добавил к нему компонент RigidBody. Затем написал вот такой скрипт и.

Почему пропадает коллизия кубика, как можно исправить?

6040b35e0dc6e750402353.png

Я новичок в юнити, написал код, чтобы можно было по нажатию кнопки на клавиатуре подбирать кубик, но появилась, когда я его беру, у него полностью пропадает коллизия, он проходит через все стены, как это можно пофиксить?

using System.Collections; using System.Collections.Generic; using UnityEngine; public class DragObject : MonoBehaviour < public GameObject obj; private float Distance; public float InteractDistance = 2f; public Transform Parent; public KeyCode TakeAnObject = KeyCode.E; public KeyCode RemoveAnObject = KeyCode.Mouse1; void OnMouseOver () < Distance = Vector3.Distance(obj.GetComponent().position, transform.position); if (Distance < InteractDistance) < if(Input.GetKeyDown (TakeAnObject)) < GetComponent().isKinematic = true; transform.SetParent(Parent); > > > void Update() < if (Input.GetKeyDown(RemoveAnObject)) < GetComponent().isKinematic = false; transform.parent = null; > >
  • Вопрос задан более двух лет назад
  • 119 просмотров

Комментировать

Решения вопроса 0

Ответы на вопрос 1

Обратите внимание на установку значения поля isKinematic компонента Rigidbody.
https://docs.unity3d.com/ScriptReference/Rigidbody.
Решать задачу переноса элемента (если последний должен взаимодействовать с окружением в это время) — задача очень нетривиальная.

Ответ написан более двух лет назад

Комментировать

Нравится 1 Комментировать

Ваш ответ на вопрос

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

unity

  • Unity

Как исправить ошибку после установки стандартного рекордера видео в юнити?

  • 1 подписчик
  • 59 минут назад
  • 6 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *