Aduketci
Hectopat
- Katılım
- 10 Şubat 2019
- Mesajlar
- 318
Snake oyununa benzer bir oyun yapmaya çalışıyorum fakat yılan sağa sola dönerken başını çevirmeyi bir türlü yapamadım. Transform.rotation deniyorum, bir sıkıntı çıkıyor. Aşağıda paylaştım.
Ve kod olarakta paylaşayım.
[CODE lang="csharp" title="Sıkıntı yaşadığım yer" highlight="9"] private void HandleInput()
{
if (Input.GetKeyDown(KeyCode.UpArrow))
{
if (gridMoveDirection.y != -1)
{
gridMoveDirection.x = 0;
gridMoveDirection.y = +1;
transform.rotation = new Vector3(0, 0, 90); // Sıkıntı burada diğerlerinde sıkıntı yok.
}[/CODE]
Ve bir adam böyle yapıyor gördüm de anlayamadım ve hatalı çıktı onu da atayım.
[CODE lang="csharp" title="Farklı bir kod işe yaramadı."] transform.eulerAngles = new Vector3(0, 0, GetAngleFromVector(gridMoveDirection) - 90);
private float GetAngleFromVector(Vector2Int dir)
{
float n = Mathf.Atan2(dir.y, dir.x) + Mathf.Rad2Deg;
if (n < 0) n += 360;
return n;
}[/CODE]
Ve kod olarakta paylaşayım.
[CODE lang="csharp" title="Sıkıntı yaşadığım yer" highlight="9"] private void HandleInput()
{
if (Input.GetKeyDown(KeyCode.UpArrow))
{
if (gridMoveDirection.y != -1)
{
gridMoveDirection.x = 0;
gridMoveDirection.y = +1;
transform.rotation = new Vector3(0, 0, 90); // Sıkıntı burada diğerlerinde sıkıntı yok.
}[/CODE]
Ve bir adam böyle yapıyor gördüm de anlayamadım ve hatalı çıktı onu da atayım.
[CODE lang="csharp" title="Farklı bir kod işe yaramadı."] transform.eulerAngles = new Vector3(0, 0, GetAngleFromVector(gridMoveDirection) - 90);
private float GetAngleFromVector(Vector2Int dir)
{
float n = Mathf.Atan2(dir.y, dir.x) + Mathf.Rad2Deg;
if (n < 0) n += 360;
return n;
}[/CODE]