Как получить скорость объекта float?

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Как получить скорость объекта float?

Сообщение _MrKleshch_ 06 май 2022, 10:21

Как получить скорость объекта float? Мне нужно значение от 0 до 1(максимальной скорости) для анимации.
_MrKleshch_
UNец
 
Сообщения: 3
Зарегистрирован: 06 май 2022, 10:17

Re: Как получить скорость объекта float?

Сообщение _MrKleshch_ 06 май 2022, 14:46

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;

public class PlayerCon : MonoBehaviour
{
public PhotonView view;
private Rigidbody rb;
private Animator animator;
[Header("Скорость перемещения персонажа")]
public float speed = 7f;
[Header("Скорость бега")]
public float runSpeed = 15f;
[Header("Мы на земле?")]
public bool ground;
[Header("Сила прыжка")]
public float jumpPower = 200f;

private void Awake()
{
rb = GetComponent<Rigidbody>();
animator = GetComponent<Animator>();
}

void Update()
{
GetInput();
}
private void GetInput()
{
if (Input.GetKey(KeyCode.W))
{
if (Input.GetKey(KeyCode.LeftShift))
{
transform.localPosition += transform.forward * runSpeed * Time.deltaTime;
}
else
{
transform.localPosition += transform.forward * speed * Time.deltaTime;
}
}
if (Input.GetKey(KeyCode.S))
{
if (Input.GetKey(KeyCode.LeftShift))
{
transform.localPosition += -transform.forward * runSpeed * Time.deltaTime;
}
else
{
transform.localPosition += -transform.forward * speed * Time.deltaTime;
}
}
if (Input.GetKey(KeyCode.A))
{
if (Input.GetKey(KeyCode.LeftShift))
{
transform.localPosition += -transform.right * runSpeed * Time.deltaTime;
}
else
{
transform.localPosition += -transform.right * speed * Time.deltaTime;
}
}
if (Input.GetKey(KeyCode.D))
{
if (Input.GetKey(KeyCode.LeftShift))
{
transform.localPosition += transform.right * runSpeed * Time.deltaTime;
}
else
{
transform.localPosition += transform.right * speed * Time.deltaTime;
}
}

if (Input.GetKeyDown(KeyCode.Space))
{
if(ground == true)
{
rb.AddForce(transform.up * jumpPower);
}
}
}
private void OnCollisionEnter(Collision collision)
{
if(collision.gameObject.tag == "Ground")
{
ground = true;
}
}
private void OnCollisionExit(Collision collision)
{
if (collision.gameObject.tag == "Ground")
{
ground = false;
}
}
}
_MrKleshch_
UNец
 
Сообщения: 3
Зарегистрирован: 06 май 2022, 10:17

Re: Как получить скорость объекта float?

Сообщение _MrKleshch_ 06 май 2022, 14:52

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;

public class PlayerCon : MonoBehaviour
{
public PhotonView view;
private Rigidbody rb;
private Animator animator;
[Header("Скорость перемещения персонажа")]
public float speed = 7f;
[Header("Скорость бега")]
public float runSpeed = 15f;
[Header("Мы на земле?")]
public bool ground;
[Header("Сила прыжка")]
public float jumpPower = 200f;

private void Awake()
{
rb = GetComponent<Rigidbody>();
animator = GetComponent<Animator>();
}

void Update()
{
GetInput();
}
private void GetInput()
{
if (Input.GetKey(KeyCode.W))
{
if (Input.GetKey(KeyCode.LeftShift))
{
transform.localPosition += transform.forward * runSpeed * Time.deltaTime;
}
else
{
transform.localPosition += transform.forward * speed * Time.deltaTime;
}
}
if (Input.GetKey(KeyCode.S))
{
if (Input.GetKey(KeyCode.LeftShift))
{
transform.localPosition += -transform.forward * runSpeed * Time.deltaTime;
}
else
{
transform.localPosition += -transform.forward * speed * Time.deltaTime;
}
}
if (Input.GetKey(KeyCode.A))
{
if (Input.GetKey(KeyCode.LeftShift))
{
transform.localPosition += -transform.right * runSpeed * Time.deltaTime;
}
else
{
transform.localPosition += -transform.right * speed * Time.deltaTime;
}
}
if (Input.GetKey(KeyCode.D))
{
if (Input.GetKey(KeyCode.LeftShift))
{
transform.localPosition += transform.right * runSpeed * Time.deltaTime;
}
else
{
transform.localPosition += transform.right * speed * Time.deltaTime;
}
}

if (Input.GetKeyDown(KeyCode.Space))
{
if(ground == true)
{
rb.AddForce(transform.up * jumpPower);
}
}
}
private void OnCollisionEnter(Collision collision)
{
if(collision.gameObject.tag == "Ground")
{
ground = true;
}
}
private void OnCollisionExit(Collision collision)
{
if (collision.gameObject.tag == "Ground")
{
ground = false;
}
}
}
_MrKleshch_
UNец
 
Сообщения: 3
Зарегистрирован: 06 май 2022, 10:17

Re: Как получить скорость объекта float?

Сообщение Alkos26Rus 06 май 2022, 19:18

текущая скорость / максимальная скорость
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1640
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27