Şimdi Ara

Unity c# hareket

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
13
Cevap
0
Favori
304
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri
  • Son Yorum 2 yıl
  • Cevaplayan Üyeler 5
  • Konu Sahibinin Yazdıkları 3
  • Ortalama Mesaj Aralığı 10 saat 10 dakika
  • Konuya En Çok Yazanlar
  • pokesee (4 mesaj) Musahan17 (4 mesaj) Guest-7D430CD60 (3 mesaj) Fulton (1 mesaj) Gökşen PASLI (1 mesaj)
  • Konuya Yazanların Platform Dağılımı
  • Masaüstü (6 mesaj) Mobil (7 mesaj)
  • @
0 oy
Öne Çıkar
Giriş
Mesaj
  • using System.Collections.Generic;

    using UnityEngine;


    public class Rook : Piece

    {

      public override List<Vector2Int> MoveLocations(Vector2Int gridPoint)

      {

        List<Vector2Int> locations = new List<Vector2Int>();

         

        foreach (Vector2Int dir in RookDirections)

        {

          for (int i = 1; i < 2; i++)

          {

            Vector2Int nextGridPoint = new Vector2Int(gridPoint.x + i * dir.x, gridPoint.y + i * dir.y);

            locations.Add(nextGridPoint);

            if (GameManager.instance.PieceAtGrid(nextGridPoint))

            {

              break;

            }

          }

        }


        return locations;

      }

    }


    Bu kodum şuan sağa sola ileri ve geri hareket sağlıyor ben sadece bunun geri gitmesini iptal etsin istiyorum bunu nasıl düzeltebilirim? 


    < Bu ileti mobil sürüm kullanılarak atıldı >



    |
    |




  • Mathf.Clamp işini görür mü?

  • quote:

    Orijinalden alıntı: Musahan17

    Mathf.Clamp işini görür mü?

    Kodlama hakkında çok bilgim yok nasıl yapılır


    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Mathf.Clamp'ın yaptığı değişkeni alıp, onun sadece belirlenen iki değer arasında olabilmesini sağlıyor, örneğin

    Mathf.Clamp(gridPoint.x + i * dir.x, 0f , gridPoint.x + i * dir.x) yazarsam ilk baştaki parametre artık 0'ın altına düşemiycek.

  • quote:

    Orijinalden alıntı: Musahan17

    Mathf.Clamp'ın yaptığı değişkeni alıp, onun sadece belirlenen iki değer arasında olabilmesini sağlıyor, örneğin

    Mathf.Clamp(gridPoint.x + i * dir.x, 0f , gridPoint.x + i * dir.x) yazarsam ilk baştaki parametre artık 0'ın altına düşemiycek.

    Peki bunu if satırının altına ayrı olarak mı yazcam yoksa Vector2Int yazan yerdenmi


    Birde ben y düzleminde geriye gitmesini önlemek istiyorum yani sadece burası x falan değil




    < Bu mesaj bu kişi tarafından değiştirildi Guest-7D430CD60 -- 9 Ocak 2021; 14:10:21 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
  • gridPoint.y + i * dir.y bunun yerine Mathf.Clamp(gridPoint.y + i * dir.y, 0f , gridPoint.y + i * dir.y)

  • quote:

    Orijinalden alıntı: Musahan17

    gridPoint.y + i * dir.y bunun yerine Mathf.Clamp(gridPoint.y + i * dir.y, 0f , gridPoint.y + i * dir.y)

    Consol hata veriyor error expected


    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Vector2Int nextGridPoint = new Vector2Int(gridPoint.x + i * dir.x, Mathf.Clamp(gridPoint.y + i * dir.y, 0f , gridPoint.y + i * dir.y));

    bu şekilde mi?

  • quote:

    Orijinalden alıntı: Musahan17

    Vector2Int nextGridPoint = new Vector2Int(gridPoint.x + i * dir.x, Mathf.Clamp(gridPoint.y + i * dir.y, 0f , gridPoint.y + i * dir.y));

    bu şekilde mi?

    Unity c# hareket

    Şu hatayı alıyorum


    < Bu ileti mobil sürüm kullanılarak atıldı >
  • resme bakarsan cast yap (int)değişken

  • quote:

    Orijinalden alıntı: Gökşen PASLI

    resme bakarsan cast yap (int)değişken

    Private float 0f falan mı yazayım game managere


    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Yokmu bilen birileri ?

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Vector2Int nextGridPoint = new Vector2Int((int)gridPoint.x + i * dir.x, Mathf.Clamp((int)(gridPoint.y + i * dir.y), 0f , (int)(gridPoint.y + i * dir.y)));


    Şöyle deneyin bir üstteki kodu isterseniz. Fakat kodlama bilmeden ilerlemeniz çok zor maalesef.




    < Bu mesaj bu kişi tarafından değiştirildi Fulton -- 13 Ocak 2021; 18:2:46 >
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.