using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CharacterMove : MonoBehaviour
{
// Start is called before the first frame update
public float moveSpeed;
private Animator Anim;
private Rigidbody2D rb2D;
float moveHorizontal;
public bool facingRight;
public float jumpForce;
public bool İsGrounded;
public bool canDoubleJump;
void Start()
{
moveSpeed = 5;
moveHorizontal = Input.GetAxis("Horizontal");
Anim = GetComponent<Animator>();
rb2D = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
CharacterMovement();
CharacterAnimation();
CharacterAttack();
CharacterRunAttack();
CharacterJump();
}
void CharacterMovement()
{
moveHorizontal = Input.GetAxis("Horizontal");
rb2D.velocity = new Vector2(moveHorizontal * moveSpeed, rb2D.velocity.y);
}
void CharacterAnimation()
{
if (moveHorizontal > 0)
{
Anim.SetBool("İsRunning", true);
}
if (moveHorizontal == 0)
{
Anim.SetBool("İsRunning", false);
}
if (moveHorizontal < 0)
{
Anim.SetBool("İsRunning", true);
}
if (facingRight == false && moveHorizontal > 0)
{
CharacterFlip();
}
if (facingRight == true && moveHorizontal < 0)
{
CharacterFlip();
}
}
void CharacterFlip()
{
facingRight = !facingRight;
Vector3 scaler = transform.localScale;
scaler.x *= -1;
transform.localScale = scaler;
}
void CharacterAttack()
{
if (Input.GetKeyDown(KeyCode.E) && moveHorizontal == 0)
{
Anim.SetTrigger("İsAttack");
}
}
void CharacterRunAttack()
{
if (Input.GetKeyDown(KeyCode.E) && moveHorizontal > 0 || Input.GetKeyDown(KeyCode.E) && moveHorizontal < 0)
{
Anim.SetTrigger("İsRunAttack");
}
}
void CharacterJump()
{
if (Input.GetKeyDown(KeyCode.Space))
{
Anim.SetBool("İsJumping", true);
if (İsGrounded)
{
rb2D.velocity = Vector2.up * jumpForce;
canDoubleJump = true;
}
else if (canDoubleJump)
{
jumpForce = jumpForce / 1.5f;
rb2D.velocity = Vector2.up * jumpForce;
canDoubleJump = false;
jumpForce = jumpForce * 1.5;
}
}
void OnCollisionEnter2D(Collision2D col)
{
Anim.SetBool("İsJumping", false);
if (col.gameObject.tag == "Grounded")
{
İsGrounded = true;
}
}
void OnCollisionStay2D(Collision2D col)
{
Anim.SetBool("İsJumping", false);
if (col.gameObject.tag == "Grounded")
{
İsGrounded = true;
}
}
void OnCollisionExit2D(Collision2D col)
{
Anim.SetBool("İsJumping", true);
if (col.gameObject.tag == "Grounded")
{
İsGrounded = false;
}
}
}
CharacterJump metodunun sonunda süslü parantez yok. İf bloğunun süslü paranteziyle karıştırmışsınız.Abiler ben oyun yapmak istiyordum. Yapmaya başladım, hep ufak tefek sıkıntılar alıyorum ama sonucunda yardımla çözüyordum. Ama bu sefer ne yaparsam yapayım çözemiyorum. Aldığım hatayı aşağı bıraktım.
Eki Görüntüle 1850504
Kod:using System.Collections; using System.Collections.Generic; using UnityEngine; public class CharacterMove : MonoBehaviour { // Start is called before the first frame update public float moveSpeed; private Animator Anim; private Rigidbody2D rb2D; float moveHorizontal; public bool facingRight; public float jumpForce; public bool İsGrounded; public bool canDoubleJump; void Start() { moveSpeed = 5; moveHorizontal = Input.GetAxis("Horizontal"); Anim = GetComponent<Animator>(); rb2D = GetComponent<Rigidbody2D>(); } // Update is called once per frame void Update() { CharacterMovement(); CharacterAnimation(); CharacterAttack(); CharacterRunAttack(); CharacterJump(); } void CharacterMovement() { moveHorizontal = Input.GetAxis("Horizontal"); rb2D.velocity = new Vector2(moveHorizontal * moveSpeed, rb2D.velocity.y); } void CharacterAnimation() { if (moveHorizontal > 0) { Anim.SetBool("İsRunning", true); } if (moveHorizontal == 0) { Anim.SetBool("İsRunning", false); } if (moveHorizontal < 0) { Anim.SetBool("İsRunning", true); } if (facingRight == false && moveHorizontal > 0) { CharacterFlip(); } if (facingRight == true && moveHorizontal < 0) { CharacterFlip(); } } void CharacterFlip() { facingRight = !facingRight; Vector3 scaler = transform.localScale; scaler.x *= -1; transform.localScale = scaler; } void CharacterAttack() { if (Input.GetKeyDown(KeyCode.E) && moveHorizontal == 0) { Anim.SetTrigger("İsAttack"); } } void CharacterRunAttack() { if (Input.GetKeyDown(KeyCode.E) && moveHorizontal > 0 || Input.GetKeyDown(KeyCode.E) && moveHorizontal < 0) { Anim.SetTrigger("İsRunAttack"); } } void CharacterJump() { if (Input.GetKeyDown(KeyCode.Space)) { Anim.SetBool("İsJumping", true); if (İsGrounded) { rb2D.velocity = Vector2.up * jumpForce; canDoubleJump = true; } else if (canDoubleJump) { jumpForce = jumpForce / 1.5f; rb2D.velocity = Vector2.up * jumpForce; canDoubleJump = false; jumpForce = jumpForce * 1.5; } } void OnCollisionEnter2D(Collision2D col) { Anim.SetBool("İsJumping", false); if (col.gameObject.tag == "Grounded") { İsGrounded = true; } } void OnCollisionStay2D(Collision2D col) { Anim.SetBool("İsJumping", false); if (col.gameObject.tag == "Grounded") { İsGrounded = true; } } void OnCollisionExit2D(Collision2D col) { Anim.SetBool("İsJumping", true); if (col.gameObject.tag == "Grounded") { İsGrounded = false; } } }
Allah için biri Şuradaki hatamı söyleyebilir mi? Her şeyi denedim. Dediği yerdeki parantezi sildim yenisini koydum kapatamadığım yerleri kapattım ama bir türlü çözemedim. Bir bakar mısınız?
Aşırı profesyonel değilim ama galiba sorun if şart bloğunun içine tekrardan if yazdırmanız. Hatalıysa kusuruma bakmayın.Abiler ben oyun yapmak istiyordum. Yapmaya başladım, hep ufak tefek sıkıntılar alıyorum ama sonucunda yardımla çözüyordum. Ama bu sefer ne yaparsam yapayım çözemiyorum. Aldığım hatayı aşağı bıraktım.
Eki Görüntüle 1850504
Kod:using System.Collections; using System.Collections.Generic; using UnityEngine; public class CharacterMove : MonoBehaviour { // Start is called before the first frame update public float moveSpeed; private Animator Anim; private Rigidbody2D rb2D; float moveHorizontal; public bool facingRight; public float jumpForce; public bool İsGrounded; public bool canDoubleJump; void Start() { moveSpeed = 5; moveHorizontal = Input.GetAxis("Horizontal"); Anim = GetComponent<Animator>(); rb2D = GetComponent<Rigidbody2D>(); } // Update is called once per frame void Update() { CharacterMovement(); CharacterAnimation(); CharacterAttack(); CharacterRunAttack(); CharacterJump(); } void CharacterMovement() { moveHorizontal = Input.GetAxis("Horizontal"); rb2D.velocity = new Vector2(moveHorizontal * moveSpeed, rb2D.velocity.y); } void CharacterAnimation() { if (moveHorizontal > 0) { Anim.SetBool("İsRunning", true); } if (moveHorizontal == 0) { Anim.SetBool("İsRunning", false); } if (moveHorizontal < 0) { Anim.SetBool("İsRunning", true); } if (facingRight == false && moveHorizontal > 0) { CharacterFlip(); } if (facingRight == true && moveHorizontal < 0) { CharacterFlip(); } } void CharacterFlip() { facingRight = !facingRight; Vector3 scaler = transform.localScale; scaler.x *= -1; transform.localScale = scaler; } void CharacterAttack() { if (Input.GetKeyDown(KeyCode.E) && moveHorizontal == 0) { Anim.SetTrigger("İsAttack"); } } void CharacterRunAttack() { if (Input.GetKeyDown(KeyCode.E) && moveHorizontal > 0 || Input.GetKeyDown(KeyCode.E) && moveHorizontal < 0) { Anim.SetTrigger("İsRunAttack"); } } void CharacterJump() { if (Input.GetKeyDown(KeyCode.Space)) { Anim.SetBool("İsJumping", true); if (İsGrounded) { rb2D.velocity = Vector2.up * jumpForce; canDoubleJump = true; } else if (canDoubleJump) { jumpForce = jumpForce / 1.5f; rb2D.velocity = Vector2.up * jumpForce; canDoubleJump = false; jumpForce = jumpForce * 1.5; } } void OnCollisionEnter2D(Collision2D col) { Anim.SetBool("İsJumping", false); if (col.gameObject.tag == "Grounded") { İsGrounded = true; } } void OnCollisionStay2D(Collision2D col) { Anim.SetBool("İsJumping", false); if (col.gameObject.tag == "Grounded") { İsGrounded = true; } } void OnCollisionExit2D(Collision2D col) { Anim.SetBool("İsJumping", true); if (col.gameObject.tag == "Grounded") { İsGrounded = false; } } }
Allah için biri Şuradaki hatamı söyleyebilir mi? Her şeyi denedim. Dediği yerdeki parantezi sildim yenisini koydum kapatamadığım yerleri kapattım ama bir türlü çözemedim. Bir bakar mısınız?
eğer en alta koyarsam tekrardan ordaki sayı değişiyor mesela paranter 143 de 143 hata veriyor diyor altına bir tane daha koyarsam 144 hata verdi diyorSyntax hatası hocam.
Eksik süslü parentez var. Sınıfı kapatmamışınız yani.
En alta bir adet böyle süslü parentez koyun "}".
özür dilerim daha çok yeniyim nasıl konu açıcağımı bile yeni öğrendim nasıl kod eklentisiyle atıyorum acabaLütfen kodlarını kod eklentisiyle atar mısın böyle hiçbir şey belli olmuyor. Hangi parantez nerde diye bakarken sorunu anlayamıyorum.
Eki Görüntüle 1850516
teşşekür ederim o sorunum çözüldüğünü varsayıyorum suan farklı bir hata alıyorum ama kendimdem kaynaklı oldugunu varsayıyorum eğer onuda yapamazsam tekrardan yardım alacağım çok teşşekürlerCharacterJump metodunun sonunda süslü parantez yok. İf bloğunun süslü paranteziyle karıştırmışsınız.
Rica ederim. Çekinmeden sorularınızı sorabilirsiniz.Teşşekür ederim o sorunum çözüldüğünü varsayıyorum suan farklı bir hata alıyorum ama kendimdem kaynaklı oldugunu varsayıyorum eğer onuda yapamazsam tekrardan yardım alacağım çok teşekürler.
Özür dilemenize gerek yok. Galiba modlar sizin yerinize kod satırına almışlar. Attığım fotoğraftaki kırmızı ile çizdiğim yere basıp yaparsınız. Açılan ekranı zaten çözersiniz.özür dilerim daha çok yeniyim nasıl konu açıcağımı bile yeni öğrendim nasıl kod eklentisiyle atıyorum acaba