Videoda da görebileceğiniz üzere, karakter hareket etmezse yok oluyor. Hareket ederken de bir sorun var ama onu başka bir konuda anlatacağım. Dash'i kodladıktan sonra bu hale geldi. ve Karakter seçiliyken "Tools" menüsü de buglanıyor.
Unity 3 hata görüyor:
Aşağıda kodu verdim, hata nerelerde ve nasıl düzeltebilirim? Oyun yazılımlarında yeni sayılırım, "çok" sayılabilecek kadar tecrübem yok. O yüzden mümkünse detaylı anlatın. Şimdiden teşekkürler.
Movement Scriptim:
Unity 3 hata görüyor:
Aşağıda kodu verdim, hata nerelerde ve nasıl düzeltebilirim? Oyun yazılımlarında yeni sayılırım, "çok" sayılabilecek kadar tecrübem yok. O yüzden mümkünse detaylı anlatın. Şimdiden teşekkürler.
Movement Scriptim:
C#:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
private float horizontal;
public float speed = 8f;
public float jumpingPower = 16f;
private bool isFacingRight = true;
private bool canDash = true;
private bool isDashing;
private float dashingPower = 50f;
private float dashingTime = 0.75f;
private float dashingCooldown = 1.2f;
public Rigidbody2D rb;
public Transform groundCheck;
public LayerMask groundLayer;
public TrailRenderer tr;
void Start()
{
}
void Update()
{
if (isDashing)
{
return;
}
horizontal = Input.GetAxisRaw("Horizontal");
if (Input.GetButtonDown("Jump") && isGrounded())
{
rb.velocity = new Vector2(rb.velocity.x, jumpingPower);
}
if (Input.GetButtonUp("Jump") && rb.velocity.y > 0f)
{
rb.velocity = new Vector2(rb.velocity.x, rb.velocity.y * 0.5f);
}
if (Input.GetKeyDown(KeyCode.LeftShift) && canDash)
{
StartCoroutine(Dash());
}
Flip();
}
private void FixedUpdate()
{
if (isDashing)
{
return;
}
rb.velocity = new Vector2(horizontal * speed, rb.velocity.y);
}
private bool isGrounded()
{
return Physics2D.OverlapCircle(groundCheck.position, 0.2f, groundLayer);
}
private void Flip()
{
if (isFacingRight && horizontal < 0f || !isFacingRight && horizontal > 0f)
{
isFacingRight = !isFacingRight;
Vector3 localScale = transform.localScale;
localScale.x *= -1f;
transform.localScale = localScale;
}
}
private IEnumerator Dash()
{
canDash = false;
isDashing = true;
float originalGravity = rb.gravityScale;
rb.gravityScale = 0f;
rb.velocity = new Vector2(-transform.localScale.x * dashingPower, 0f);
tr.emitting = true;
yield return new WaitForSeconds(dashingTime);
tr.emitting = false;
rb.gravityScale = originalGravity;
isDashing = false;
yield return new WaitForSeconds(dashingCooldown);
canDash = true;
}
}
Son düzenleyen moderatör: