Şimdi Ara

Unity c# hareket

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
14
Cevap
0
Favori
327
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
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 >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.