Пытался сделать двойной прыжок, ну или одиночный еще точно не знаю, а у меня персонаж летает, ну то есть прыгает сколько хочет. У меня уже стоит под ним платформа и он считывает землю, вроде бы, но он все равно летает
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
public float speed = 12; // Выводим в меню где можно все поменять, кликнув на персонажа
public float jumpheight = 12;
private int extraJumps;
public int extraJumpsValue;
private bool isGrounded;
public Transform groundCheck;
public float checkRadius;
public LayerMask WhatisGround;
Rigidbody2D rb;
Animator anim; //сокращаем название
void Start()
{
extraJumps = extraJumpsValue;
rb = GetComponent<Rigidbody2D>(); // Включили боксколайдер
anim = GetComponent<Animator>(); // Включили анимацию
}
void FixedUpdate()
{
isGrounded = Physics2D.OverlapCircle(groundCheck.position, checkRadius, WhatisGround);
rb.velocity = new Vector2(Input.GetAxis("Horizontal") * speed, rb.velocity.y); //Функция бега
}
void Update() {
if (isGrounded = true)
{
extraJumps = extraJumpsValue;
}
if (Input.GetKeyDown(KeyCode.Space) && extraJumps > 0)
{
Jump();
extraJumps--;
}else if (Input.GetKeyDown(KeyCode.Space) && extraJumps == 0 && isGrounded == true)
{
Jump();
}
if (Input.GetAxis ("Horizontal") == 0) {
anim.SetInteger ("popka", 1);
} else {
Flip();
anim.SetInteger("popka", 2);
}
}
void Flip()
{
if (Input.GetAxis("Horizontal") < 0)
transform.localRotation = Quaternion.Euler (0, 200, 0);
if (Input.GetAxis("Horizontal") > 0)
transform.localRotation = Quaternion.Euler (0, 0, 0);
}
void Jump()
{ rb.AddForce(transform.up * jumpheight, ForceMode2D.Impulse); }
}
Ты пытаешься присвоить внутри условия if if (isGrounded = true) {}
.
if нужно получить bool значение и используется операция сравнения "==", а не присвоения "=", но isGrounded сам по себе является bool if (isGrounded) {}
.
Функция Flip странная, ты не флипаешь, а вертишь.
[DisallowMultipleComponent]
[RequireComponent(typeof(Rigidbody2D))]
[RequireComponent(typeof(Animator))]
public class Runner : MonoBehaviour {
[SerializeField] private LayerMask _groundLayer;
[SerializeField] private Transform _groundCheck;
[SerializeField] private float _checkRadius = 1;
[SerializeField] private float _speed = 12;
[SerializeField] private float _jumpForce = 12;
[SerializeField] private int _baseJump = 2;
[SerializeField] private float _fallVelocityMark = -1;
[SerializeField] private KeyCode _jumpKey = KeyCode.Space;
private const string _animName = "popka";
private Rigidbody2D _body;
private Animator _anim;
private Transform _transform;
private int _jumps;
private bool _isGrounded;
private void Awake () {
_body = GetComponent<Rigidbody2D>();
_anim = GetComponent<Animator>();
_transform = transform;
}
private void FixedUpdate () {
if (Input.GetKeyDown(_jumpKey))
Jump();
if (_isGrounded)
Move();
else if (_body.velocity.y < 0 && CheckGroundCollide())
Landing();
}
private void Move () {
float Vector = Input.GetAxis("Horizontal");
_body.velocity = new Vector2(Vector*_speed, _body.velocity.y);
if (Vector == 0)
_anim.SetInteger(_animName, 1);
else {
_anim.SetInteger(_animName, 2);
Flip(Vector);
}
if (_body.velocity.y < _fallVelocityMark)
Fall();
}
private void Flip (float vector) {
_transform.localScale = vector < 0 ? Vector3.one : new Vector3(-1, 1, 1);
}
private void Jump () {
if (_jumps > 0) {
_isGrounded = false;
_jumps--;
_body.AddForce(transform.up*_jumpForce, ForceMode2D.Impulse);
}
}
private void Landing () {
_isGrounded = true;
_jumps = _baseJump;
}
private void Fall () {
_isGrounded = false;
_jumps -= 1;
}
private bool CheckGroundCollide () {
return Physics2D.OverlapCircle(_groundCheck.position, _checkRadius, _groundLayer);
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть несколько файлов каждый из который содержит создание ХПНеобходимо реализовать алгоритм при котором программа запускаясь ищет в БД ХП по имени...
Как получить имя текущего контроллера домена? Данный отрезок кода выводит имя домена, а мне нужно имя контроллера
пробовал сам сделать хелло ворлд на c#, ругается скачал с гитхаба, тоже не работает, может кто-то сталкивался с таким
При попытке создать WPF приложение наNet Core 3 выдает это: Я думаю, что тут проблема локализации, ибо найти такие разделы настроек не могу