Unity 3d Hareket Sorunu

Bu konuyu okuyanlar

ImHoly

Öğrenci
Katılım
3 Mart 2016
Mesajlar
5
Reaksiyon puanı
1
Puanları
3
Yaş
28
Merhabalar, ben android 2d bir oyun yazıyorum hatta bitti bile denebilir sadece tek bir sıkıntım kaldı, oyun karakterim ekrana dokundukça uçuyor telefonu sağa sola çevirince sağa sola gidiyor ama ekranın dışına çıkıyor bunun için bir çok yol denedim ama bir türlü beceremedim.

Collider ekledim olmadı rigidbody ekledim collider ile birlikte boş bir gameobje ye tüm ayarlarıyla tek tek oynadım araştırmalar yaptım olmadı.

karakterin gidebileceği sınırları belirleyerek if komutu yazdım birçok kombinasyon denedim fakat bu sefer de ya hiç hareket etmedi yada belirlediğim sınırlara gelince takıldı hareket etmedi yardımcı olur musunuz hareket kodlarımı paylaşıyorum aşağıda;

Kod:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Audio;

public class CharacterFlying : MonoBehaviour {

    public float gravity;
    Vector3 bird_move = Vector3.zero;
    public Vector3 flyspeed;
    bool boolflapping;
    public float maxspeed;
    public static float speedforward;
    public float left = -2.38f;
    public float right = 2.43f;
    public float CharSpeed = 0.040f;
    public AudioSource jump;
   

    void Start()
    {

    }

    void FixedUpdate()
    {

        if (!UserSettings.GameStart)
        {
            if (!UserSettings.GameOver)
            {
                if (!UserSettings.Pause)
                {
                    bird_move += new Vector3(0, /*-gravity*/-0.18f, 0);
                    if (boolflapping == true)
                    {
                        boolflapping = false;
                        bird_move += flyspeed;
                    }
                    if (bird_move.y > maxspeed)
                    {
                        bird_move = new Vector3(bird_move.x, maxspeed, bird_move.z);
                    }
                    bird_move = new Vector3(speedforward, bird_move.y, bird_move.z);
                    /*float rot;
                    if (transform.position.y < 0)
                    {
                        rot = Mathf.Lerp(0, 0, -bird_move.y / maxspeed);
                        transform.rotation = Quaternion.Euler(0, 0, rot);
                    }*/
                    transform.position += bird_move * Time.deltaTime;
                }
            }
        }


    }

    void Update()
    {
        if (transform.position.x > left && transform.position.x < right)
        {
            transform.Translate(Input.acceleration.x, 0, 0); //Denenecek
        }
        if (Input.GetKeyDown(KeyCode.Space))
        {
            boolflapping = true;
            jump.Play();

        }
        if (Input.touchCount > 0)
        {
            boolflapping = true;
            jump.Play();
        }

        /*if (Input.acceleration.x > 0.25)
        {  //sağ tarafa döndürürken yapılacak işlem
            transform.Rotate(5, 0, 0); // sağ tarafa (rotasyon.x'e) 5 ekle
        }
        if (Input.acceleration.x < -0.25)
        { //sol tarafa döndürürken yapılacak işlem
            transform.Rotate(5, 0, 0); // sol tarafa (rotasyon.x'e) 5 eksilt
        }*/

        /*if (Input.acceleration.x > 0.25)
        {

            if (transform.position.x < Screen.width * 0.3f)
            {
                if (transform.position.x > left)
                {
                    transform.Translate(Vector3.right * CharSpeed);
                }
            }
        }else if (Input.acceleration.x < -0.25)
        {
            if (transform.position.x > Screen.width * 0.7f)
            {
                if (transform.position.x < right)
                {
                    transform.Translate(Vector3.left * CharSpeed);
                }
            }
        }*/


           /* if(Input.acceleration.x > 0.25)
            {
                transform.Translate(Vector3.left * CharSpeed);
            }
   
            if (Input.acceleration.x > -0.25)
            {
                transform.Translate(Vector3.right * CharSpeed);
            }*/

    }
}
 
Üst