Nie reagowanie przycisku po wyjściu z innej sceny

Programowanie w Unity.

Nie reagowanie przycisku po wyjściu z innej sceny

Postprzez Robot 12 » 24 Mar 2020, 20:39

Witam Tworze prostą grę i napotkałem na problem. Stworzyłem Canvas w którym jest Esc Menu przyciski typu Powrót do gry Opcje Zapis Wyjścia. Powrót do gry i wyjście działa problem jest taki że w momencie wyjścia z Opcji do głównego świata przycisk Powrót do gry nie działa w 100% dokładnie zamyka Esc Menu i itd. ale do tego przycisku są podpięte 2 Akcie. 1 to Zamykanie Canvas ustawianie na dobry czas znikanie myszki itd . a 2 odblokowuje obrót kamery za myszki właśnie ten 2 nie reaguje i powstaje sytuacja gdzie nie działa poruszanie kamery za myszką. Mam nadzieje że wszystko napisałem Zrozumiale.
Robot 12
 
Posty: 4
Rejestracja: 24 Mar 2020, 18:29
Has thanked: 0 time
Been thanked: 0 time

Re: Nie reagowanie przycisku po wyjściu z innej sceny

Postprzez Wichur » 25 Mar 2020, 12:13

masz eventsystem? zdaje mi sie, ze przez to nie dziala po przelaczeniu sceny. Zrob aby nie niszczylo tego objektu
Awatar użytkownika
Wichur
 
Posty: 137
Rejestracja: 19 Gru 2017, 10:33
Miejscowość: Pruszcz Gdański
Has thanked: 0 time
Been thanked: 0 time

Re: Nie reagowanie przycisku po wyjściu z innej sceny

Postprzez Robot 12 » 25 Mar 2020, 15:41

Robot 12
 
Posty: 4
Rejestracja: 24 Mar 2020, 18:29
Has thanked: 0 time
Been thanked: 0 time

Re: Nie reagowanie przycisku po wyjściu z innej sceny

Postprzez Neespa » 25 Mar 2020, 20:54

Możesz pokazać kod?
Awatar użytkownika
Neespa
 
Posty: 12
Rejestracja: 13 Kwi 2014, 11:37
Has thanked: 0 time
Been thanked: 0 time

Re: Nie reagowanie przycisku po wyjściu z innej sceny

Postprzez Robot 12 » 26 Mar 2020, 14:25

Kod odpowiedzialny za poruszanie się (Aktywność który się nie spełnia po na ciśnięciu klawisza)
Kod: Zaznacz wszystko
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[RequireComponent(typeof(CharacterController))]
public class PlayerMovement : MonoBehaviour
{

    public float playerWalkingSpeed = 5f;
    public float playerRunningSpeed = 15f;
    public float jumpStrength = 20f;
    public float verticalRotationLimit = 80f;
    public bool IsPaused;
    public GameObject Instancja;

    float forwardMovement;
    float sidewaysMovement;

    float verticalVelocity;

    float verticalRotation = 0;
    CharacterController cc;

   

    void Awake()
    {
        cc = GetComponent<CharacterController>();
        Cursor.visible = true;
        Cursor.lockState = CursorLockMode.Locked;
    }
    public void Powrut()
    {
        IsPaused = false;
    }


        void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            IsPaused = !IsPaused; 
        }
        if (IsPaused == false)
        {
            //Rozglądanie się na boki
            float horizontalRotation = Input.GetAxis("Mouse X");
            transform.Rotate(0, horizontalRotation, 0);

            //Rozglądanie się góra dół
            verticalRotation -= Input.GetAxis("Mouse Y");
            verticalRotation = Mathf.Clamp(verticalRotation, -verticalRotationLimit, verticalRotationLimit);
            Camera.main.transform.localRotation = Quaternion.Euler(verticalRotation, 0, 0);
        }
        //Poruszanie graczem
        //Tylko jeśli ma kontakt z podłożem
        if (cc.isGrounded)
        {
            forwardMovement = Input.GetAxis("Vertical") * playerWalkingSpeed;
            sidewaysMovement = Input.GetAxis("Horizontal") * playerWalkingSpeed;
            //Bieganie jeśli gracz wcisnął Lewy Shift
            if (Input.GetKey(KeyCode.LeftShift))
            {
                forwardMovement = Input.GetAxis("Vertical") * playerRunningSpeed;
                sidewaysMovement = Input.GetAxis("Horizontal") * playerRunningSpeed;
            }
        }
        // Sprawienie, aby na gracza działała grawitacja
        // A więc, żeby podłoże go przyciągało
        verticalVelocity += Physics.gravity.y * Time.deltaTime;

        //Skakanie po wciśnięciu przycisku odpowiedzialnego za skok
        if (Input.GetButton("Jump") && cc.isGrounded)
        {
            verticalVelocity = jumpStrength;
        }

        Vector3 playerMovement = new Vector3(sidewaysMovement, verticalVelocity, forwardMovement);
        //Poruszanie bohaterem
        cc.Move(transform.rotation * playerMovement * Time.deltaTime);
    }
}

Skrypt odpowiedzialny za przyciski w Esc Menu + eksperymenty z zapisem(Aktywność który się spełnia po na ciśnięciu klawisza)
Kod: Zaznacz wszystko
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Experimental.UIElements;
using UnityEngine.SceneManagement;
using System;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;

public class EscepeMenubuton : MonoBehaviour
{

    private Transform gracz;

    private void Start()
    {
       gracz = GraczInstancja.instancja.GetComponent<Transform>();

    }

    public void Wruć_do_gry()
    {
        EscGra sc = gameObject.GetComponent<EscGra>();
        sc.IsPaused = false;

    }

    public void Opcie()
    {
        SceneManager.LoadScene(8);
        /*
        FileStream plik = File.Create(Application.persistentDataPath + "/graczInfo.data");

        GraczDane dane = new GraczDane();
        dane.nazwaSceny = Application.loadedLevelName;
        dane.jest = 1;
        dane.pozcia = new Vector3Serialization(gracz.GetCoponet<Transform>().position);



       
        */


    }
    public void Zapis()
    {
        SceneManager.LoadScene(7);
        // Zapis sc = gameObject.GetComponent<Zapis>();
        // sc.IsPaused = true;
    }


    public void wyjć()
    {
        SceneManager.LoadScene(0);
    }

}
[Serializable]
class GraczDane
{
    public String nazwaSceny;
    public int jest;
    public int zdrowie;
    public int jedzenie;
    public int woda;
    public int Sen;
    public int godzina;
    public int czystośc;
    public Vector3Serialization pozcia;
    public QuaternionSerialization obrut;
}
[Serializable]
class Vector3Serialization
{
    public float x;
    public float y;
    public float z;

    public Vector3Serialization(Vector3 v)
    {
        ustaWektor(v);
    }
    public void ustaWektor(Vector3 v)
    {
        this.x = v.x;
        this.y = v.y;
        this.z = v.z;
    }

    public Vector3 PobieszWektor()
    {
        Vector3 vec = new Vector3();
        vec.x = this.x;
        vec.y = this.y;
        vec.z = this.z;
        return vec;

    }
}
[Serializable]
class QuaternionSerialization
{
    public float x;
    public float y;
    public float z;
    public float w;

    public QuaternionSerialization(Quaternion v)
    {
        ustawQuaternion(v);
    }
    public void ustawQuaternion(Quaternion v)
    {
        this.x = v.x;
        this.y = v.y;
        this.z = v.z;
        this.w = v.w;
    }

    public Quaternion PobieszQuaternion()
    {

        Quaternion vec = new Quaternion();
        vec.x = this.x;
        vec.y = this.y;
        vec.z = this.z;
        vec.w = this.w;
        return vec;

    }
}




Kod odpowiedzialny za przycisk na innej scenie który powoduje powrót do Głównej sceny
Kod: Zaznacz wszystko
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Experimental.UIElements;
using UnityEngine.SceneManagement;

public class Opciegra : MonoBehaviour
{
   
    public void Zapisziwyjc()
    {

        SceneManager.LoadScene(5);


    }
   

}
Robot 12
 
Posty: 4
Rejestracja: 24 Mar 2020, 18:29
Has thanked: 0 time
Been thanked: 0 time

Re: Nie reagowanie przycisku po wyjściu z innej sceny

Postprzez Robot 12 » 04 Kwi 2020, 18:42

Pomoże ktoś?
Robot 12
 
Posty: 4
Rejestracja: 24 Mar 2020, 18:29
Has thanked: 0 time
Been thanked: 0 time


Wróć do Skrypty

Kto jest na forum

Użytkownicy przeglądający to forum: Google [Bot] oraz 2 gości

cron