İstediğim şeyi bir türlü yapamadım. Oyuncunun kılıcı düşmana değdiği zaman kılıç yukarıya doğru (yani +y) 1 değer uzasın, bu her düşmana değdiğinde tekrar etsin.
Kılıca bir script atayın. Ardından düşmana bir tag ekleyin ve kodda da oncollisionenter2D'nın içinde compare tag ile çarpan nesnenin düşman olduğundan emin olun, ve transform. Translate kullanarak kılıcın ysini arttırın. Kod burada:
C#:
using UnityEngine;
public class KılıçKontrol : MonoBehaviour
{
public float kılıçUzunluğu = 1f; // Kılıç uzunluğu, istediğiniz değeri ayarlayabilirsiniz.
private void OnCollisionEnter2D(Collision2D collision)
{
// Çarpışan nesnenin "Düşman" etiketine sahip olup olmadığını kontrol et
if (collision.gameObject.CompareTag("Düşman"))
{
// Kılıcı yukarı doğru kaydır
Vector3 yeniPozisyon = transform.position + new Vector3(0f, kılıçUzunluğu, 0f);
transform.position = yeniPozisyon;
}
}
}
Kılıca bir script atayın. Ardından düşmana bir tag ekleyin ve kodda da oncollisionenter2D'nın içinde compare tag ile çarpan nesnenin düşman olduğundan emin olun, ve transform. Translate kullanarak kılıcın ysini arttırın. Kod burada:
C#:
using UnityEngine;
public class KılıçKontrol : MonoBehaviour
{
public float kılıçUzunluğu = 1f; // Kılıç uzunluğu, istediğiniz değeri ayarlayabilirsiniz.
private void OnCollisionEnter2D(Collision2D collision)
{
// Çarpışan nesnenin "Düşman" etiketine sahip olup olmadığını kontrol et
if (collision.gameObject.CompareTag("Düşman"))
{
// Kılıcı yukarı doğru kaydır
Vector3 yeniPozisyon = transform.position + new Vector3(0f, kılıçUzunluğu, 0f);
transform.position = yeniPozisyon;
}
}
}
Uzama CD'si ekle yoksa bir müddet sonra kılıç çok uzadığı için performans sorunları, map dışına taşarsa da bug, glitch v.s olabilir Unity bu. Misal çatışma dışında kaldığın her saniye kılıç tekrar kısalsın.
Kılıca bir script atayın. Ardından düşmana bir tag ekleyin ve kodda da oncollisionenter2D'nın içinde compare tag ile çarpan nesnenin düşman olduğundan emin olun, ve transform. Translate kullanarak kılıcın ysini arttırın. Kod burada:
C#:
using UnityEngine;
public class KılıçKontrol : MonoBehaviour.
{
public float kılıçUzunluğu = 1f; // Kılıç uzunluğu, istediğiniz değeri ayarlayabilirsiniz.
private void OnCollisionEnter2D(Collision2D collision)
{
// Çarpışan nesnenin "Düşman" etiketine sahip olup olmadığını kontrol et.
if (collision.gameObject.CompareTag("Düşman"))
{
// Kılıcı yukarı doğru kaydır.
Vector3 yeniPozisyon = transform.position + new Vector3(0f, kılıçUzunluğu, 0f);
transform.position = yeniPozisyon;
}
}
}