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ı > |
Unity c# hareket
-
-
Mathf.Clamp işini görür mü?
-
quote:
Orijinalden alıntı: Musahan17Mathf.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ı: Musahan17Mathf.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ı: Musahan17gridPoint.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ı: Musahan17Vector2Int nextGridPoint = new Vector2Int(gridPoint.x + i * dir.x, Mathf.Clamp(gridPoint.y + i * dir.y, 0f , gridPoint.y + i * dir.y));
bu şekilde mi?
Ş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 PASLIresme 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 >
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