• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zmiana aktywnej kamery

0 głosów
45 wizyt
pytanie zadane 11 lutego 2020 w OpenGL, Unity przez Alan Kruszyński Obywatel (1,410 p.)

Ten skrypt powinien zmieniać w grze aktywną kamerę przy naciśnięciu klawiszy "1" lub "2", jednak nic się nie dzieje. Proszę o pomoc.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraControl : MonoBehaviour
{
    public GameObject Camera1;
    public GameObject Camera2;

    public GameObject Control1;
    public GameObject Control2;
    // Start is called before the first frame update
    void Start()
    {


    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            
            StartCoroutine(ViewOne());
        }
        if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            StartCoroutine(ViewTwo());
        }
    }

    string ViewOne()
    {
        Camera1.SetActive(true); //aktywujemy pierwszą kamerę
        Camera2.SetActive(false); //dezaktywujemy drugą kamerę

        Control1.GetComponent<PlayerControler>().enabled = true; //aktywujemy w pierwszej postaci (chyba to jest postać) komponent PlayerControler
        Camera1.GetComponent<AudioListener>().enabled = true; //aktywujemy w pierwszej kamerze audiolistener

        Camera2.GetComponent<AudioListener>().enabled = false; //dezaktywujemy w drugiej kamerze audiolistener
        Control2.GetComponent<RigidbodyControler>().enabled = false; //dezaktywujemy w drugiej postaci komponent RigidbodyControler
        return "string";
    }
    string ViewTwo()
    {
        if (!Control1.GetComponent<CharacterController>().isGrounded) { return "string"; } //jeżeli pierwsza postać nie jest na ziemi to tutaj kończymy wykonywanie funkcji

        Camera2.SetActive(true); //aktywujemy drugą kamerę
        Camera1.SetActive(false); //dezaktywujemy pierwszą kamerę

        Control1.GetComponent<PlayerControler>().enabled = false; //dezaktywujemy w pierwszej postaci komponent PlayerControler
        Camera1.GetComponent<AudioListener>().enabled = false; //dezaktywujemy w pierwszej kamerze audiolistener

        Camera2.GetComponent<AudioListener>().enabled = true; //aktywujemy w drugiej kamerze audiolistener
        Control2.GetComponent<RigidbodyControler>().enabled = true;  //aktywujemy w drugiej postaci komponent RigidbodyControler
        return "string";
    }
}

StartCoroutine() pobiera argument typu string, kompilator wyrzucał błędy i żądał by funkcja coś zwracała, nie wiedziałem jak temu zaradzić, więc wpisałem na koniec funkcji return "string:"

komentarz 11 lutego 2020 przez adrian17 Ekspert (302,720 p.)
To zakładam że jeszcze nie wiesz o coroutines.

A bardziej bazowe pytanie: po co używasz StartCoroutine(), zamiast po prostu wywołać funkcję bezpośrednio?

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 667 wizyt
pytanie zadane 8 października 2018 w OpenGL, Unity przez HitMan Użytkownik (850 p.)
0 głosów
1 odpowiedź 203 wizyt
pytanie zadane 4 kwietnia 2016 w JavaScript przez Barus Stary wyjadacz (14,100 p.)
0 głosów
1 odpowiedź 145 wizyt
pytanie zadane 9 sierpnia 2019 w JavaScript przez Luckyluck87 Użytkownik (670 p.)

85,870 zapytań

134,642 odpowiedzi

298,913 komentarzy

56,737 pasjonatów

Advent of Code 2021

Top 15 użytkowników

  1. 926p. - rucin93
  2. 925p. - Whistleroosh
  3. 912p. - nidomika
  4. 876p. - adrian17
  5. 867p. - Michal Drewniak
  6. 866p. - Mikbac
  7. 863p. - Mateusz Bogdan
  8. 859p. - CC PL
  9. 797p. - Argeento
  10. 704p. - ScriptyChris
  11. 683p. - tokox
  12. 660p. - Vinox
  13. 645p. - TheLukaszNs
  14. 642p. - s. Dorota Kowalewska
  15. 601p. - Marcin Harasimowicz
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...