Я делаю платформер на юнити и у меня персонаж почему улетает в минус по оси Y
Василий Буднов
Ученик
(90),
на голосовании
8 месяцев назад
платформер 2D на c# я сделал скрипт для камеры что бы она следовала за игроком и она сразу летит вниз
скрипт для игрока
public class Player : MonoBehaviour { public float speed = 1; Rigidbody2D rb; public float jumpforce = 5;
// Start is called before the first frame update void Start() { rb = GetComponent<Rigidbody2D>(); }
// Update is called once per frame void Update() { float movement = Input.GetAxis("Horizontal"); transform.position += new Vector3(movement, 0, 0) * speed * Time.deltaTime; if (Input.GetKeyDown( KeyCode.Space ) && Mathf.Abs(rb.velocity.y) < 0.05f) rb.AddForce(new Vector2(0,jumpforce), ForceMode2D.Impulse);
} }
скрипт для камеры: public class camera : MonoBehaviour { [SerializeField] private Transform player; [SerializeField] private Vector3 target; [SerializeField] private float speed = 1.5f;
скрипт для игрока
public class Player : MonoBehaviour
{
public float speed = 1;
Rigidbody2D rb;
public float jumpforce = 5;
// Start is called before the first frame update
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
float movement = Input.GetAxis("Horizontal");
transform.position += new Vector3(movement, 0, 0) * speed * Time.deltaTime;
if (Input.GetKeyDown( KeyCode.Space ) && Mathf.Abs(rb.velocity.y) < 0.05f)
rb.AddForce(new Vector2(0,jumpforce), ForceMode2D.Impulse);
}
}
скрипт для камеры:
public class camera : MonoBehaviour
{
[SerializeField] private Transform player;
[SerializeField] private Vector3 target;
[SerializeField] private float speed = 1.5f;
void FixedUpdate()
{
target = new Vector3(player.transform.position.x, player.transform.position.y, -10f);
transform.position = Vector3.Lerp(transform.position, target, speed * Time.fixedDeltaTime);
}
}