odaki sorun nedir haraket ederken karakter tirtir titriyo |
Unity Haraket Yardım Lütfen
-
-
Kodları görsek daha iyi cevap verebiliriz :)
-
public class Playerharaket : MonoBehaviour
{ //karakterin hızı
public float speed;
//karakter haraketi için gerekli bileşenler
public Rigidbody2D rb;
public GameObject player;
public Vector2 movement;
//karkaterin yönü
[HideInInspector]
public float direction;
//mermi
public GameObject bullet;
//mermini çıktığı nokta
public Transform bulletspawnertr;
public GameObject makinalımermi;
//silah şarjör,cephane,maxcephane
public int şarjörekimermi, şarjör, toplananmermi;
//kaç adet mermimiz kaldığını ekrana yazar iki farklı yere aynı rakam yazıldığı için iki adet
public TextMeshProUGUI toplammermianaslot;
public TextMeshProUGUI toplananmermiufakyazı;
//şarjorde kalan mermi sayısını ufak slota yazdırır
public TextMeshProUGUI şarjordekimermisayısı;
//silah alınca kaybolacak ve gelecek eller
public GameObject sağel,solel, silahlıeller;
//kaç saniyede bir ateş etebileceğimizi sınıraldık
public float sayac;
void Start()
{
bulletspawnertr = GameObject.Find("bulletspawner").transform;
rb = player.GetComponent<Rigidbody2D>();
}
void FixedUpdate()
{
moveCharacter(movement);
}
void moveCharacter(Vector2 dire)
{
//1. yönetm haraket
//rb.velocity = dire * speed;
//2. yönetem haraket
rb.MovePosition((Vector2)transform.position + (dire * speed ));
}
void Update()
{
movement = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
// sayacı geri saydıran kod
sayac -= Time.deltaTime;
// karakterin mouse takip etme kodu
var dir = (Input.mousePosition - Camera.main.WorldToScreenPoint(transform.position)) * Time.deltaTime;
direction = (Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg) - 90;
transform.rotation = Quaternion.AngleAxis(direction, Vector3.forward);
//karakter haraket kodu fakat duvara çarpınca çok titiryor ve camlardan geçiyor arada bir
//transform.position = new Vector3(transform.position.x + speed * Input.GetAxis("Horizontal")*Time.deltaTime, transform.position.y + speed * Input.GetAxis("Vertical")*Time.deltaTime, transform.position.z);
-
3 yöntem var 1. yöntem velocity ondanda aynı karakter titriyor 2. yöntem movepositon onu kullanıyorum şuanda oda titriyor 3. transform postion onda karakter titemiyor duvara surtunduğumde titriyor ondada acaba mause takip koduyla alakalımı ki
-
Kodlarda bir hata göremedim gayet pürüzsüz çalışması lazım.Rigidbody 2d'de interpolation açıksa none yapın veya camera takip kodunuz titriyor olabilir.Kamera takip kodunu kapatıp deneyin.
-
hocam haklıymışşsınız kamera takıp kodunu değiştridim düzeldi birde şöyle bir sorunum var duvara değince ve duvara doğru haraket edınce titriyor
-
transform postionda böyle sorun var eğer velocity veya move postion ile yaparsam d ile duvara sürekli çarpmaya devam edersem olmuyor d ve w ile duvara sürtünme yapmaya başlarsam daha fena sallanıyor ve ani den ileri giderken birden s basıp geri gidersem ufak bi lag gibi bişey oluyor
-
O hareket eden karakterdeki komponentleri yazar misin?
< Bu ileti mobil sürüm kullanılarak atıldı > -
-
Collider gorunmemis ama neyse o tam tahmin ettigim gibi polygon 2d collider ile kendiniz meshini ayarladiniz galiba.Duvara carpinca ziplamasi ondan oluyor.Karakterin elleri biri biraz yukarida ve karakter surekli mouse u takip ettigi ve dondugu icin bir sag kolu bir sol kolu carpip duruyor.o collideri kaldirip sadece 1 tane circle collider 2d ekleyin ve boyutunu ellerini de kapsayacak sekilde ayarlayin sorun cozulur.
< Bu ileti mobil sürüm kullanılarak atıldı > -
Yok hocam sorun devam ediyor ya -
Collision detection'ı discrete değil continous yapmayı deneyin.
Bu mesaj IP'si ile atılan mesajları ara Bu kullanıcının son IP'si ile atılan mesajları ara Bu mesaj IP'si ile kullanıcı ara Bu kullanıcının son IP'si ile kullanıcı ara
KAPAT X