Bertyy
Centipat
- Katılım
- 14 Haziran 2023
- Mesajlar
- 43
Daha fazla
- Cinsiyet
- Erkek
Merhaba. Tekrardan ben. En son aldıgım hatadan sonra şevkim kırılmıştı, bir daha dönmeyi düşünmüyordum ama dişimi sıkım geri döndüm. Lafı kısa tutayım, tekrardan yardımınıza ihtiyacım var. Aldıgım hatanın fotografını atıyorum. Altına da kodu atıyorum, yardım ederseniz makbule geçersiniz. Şimdiden teşekkürler.
C#:
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;
}
}
}
Son düzenleyen: Moderatör: