#c# #unity3d
#c# #unity3d
Вопрос:
using UnityEngine;
public class PlayerMove : MonoBehaviour
{
public Rigidbody2D rb;
public Transform spawn;
public Vector2 moveforward;
public Vector2 jumpheight;
public Vector3 turn;
void OnCollisionStay2D(Collision2D collision)
{
if (collision.collider.tag == "Floor")
{
//Move
if (Input.GetKeyDown("w"))
{
rb.AddForce(jumpheight * Time.deltaTime);
}
if (Input.GetKeyDown("space"))
{
rb.AddForce(jumpheight * Time.deltaTime);
}
}
//Death
if (collision.collider.tag == "Death")
{
transform.position = spawn.position;
}
}
// Update is called once per frame
void FixedUpdate()
{
//Move
if (Input.GetKey("d"))
{
transform.rotation = Quaternion.LookRotation(turn);
rb.AddForce(moveforward * Time.deltaTime);
}
if (Input.GetKey("a"))
{
transform.rotation = Quaternion.LookRotation(-turn);
rb.AddForce(-moveforward * Time.deltaTime);
}
}
}
Я придумал это сейчас для своего 2d-платформера.
Я ненавижу, когда он говорит в основном код.
Я ненавижу, когда он говорит в основном код.Я ненавижу, когда он говорит в основном код.Я ненавижу, когда он говорит в основном код.Я ненавижу, когда он говорит в основном код.Я ненавижу, когда он говорит в основном код.Я ненавижу, когда он говорит в основном код.Я ненавижу, когда он говорит в основном код.Я ненавижу, когда он говорит в основном код.Я ненавижу, когда он говорит в основном код.Я ненавижу, когда он говорит в основном код.
Комментарии:
1. и в чем именно ваша проблема? Где конкретно у вас возникают трудности?
2. Я использую Free Pixel Space Platform Pack, и когда я ухожу с края, я медленно наклоняюсь, а затем падаю. Любые альтернативы этому коду новый код.
Ответ №1:
Компонент Rigidbody на вашем объекте отслеживает «скорость» объектов, которая является «скоростью» на каждой оси. Velocity — это Vector3 со значением x, значением y, значением z для каждой оси (Vector2 просто не изменяет z) AddForce увеличивает каждое из этих 3 свойств скорости на соответствующие значения x, y, z, которые вы «добавляете». время.deltaTime предназначен для распределения дополнительной силы с течением времени.
Комментарии:
1. Я использую Free Pixel Space Platform Pack, и когда я ухожу с края, я медленно наклоняюсь, а затем падаю. Любые альтернативы этому коду.
Ответ №2:
попробуйте это. Rigidbody2D имеет 3 измерения, когда вы ставите его как AddForce(значение); он также реализует X, Z, Y, поэтому вместо этого попробуйте присвоить значение только первому параметру функции Addforce, который равен X. надеюсь, это поможет. также извините за мой плохой английский 🙂
void FixedUpdate()
{
//Move
if (Input.GetKey("d"))
{
transform.rotation = Quaternion.LookRotation(turn);
rb.AddForce(moveforward * Time.deltaTime,0f,0f);
}
if (Input.GetKey("a"))
{
transform.rotation = Quaternion.LookRotation(-turn);
rb.AddForce(-moveforward * Time.deltaTime,0f,0f);
}
}