Nichtübereinstimmung der FertighaustypenC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Nichtübereinstimmung der Fertighaustypen

Post by Anonymous »

Ich habe tagelang versucht, Fehler zu beheben, bin aber nur auf eine anhaltende Typinkongruenz gestoßen.
Ich arbeite an einem Flappy-Bird-Spiel und wollte, dass die Pipes schneller laufen, wenn die Punktzahl steigt, also habe ich in meinem LogicManager ein [serialisiertes] Feld erstellt, aber es fing an. Ich habe versucht, den Code in ein neues Skript zu kopieren, aber er blieb bestehen, ich habe ein völlig neues Fertighaus von Grund auf erstellt, nichts, ich habe die KI jetzt schon seit Tagen gefragt.
Hier ist meine Skriptdatei:

Code: Select all

    using UnityEngine;
using UnityEngine.SocialPlatforms.Impl;

public class Pipe_slide : MonoBehaviour
{
public Logicscript Logicscript;
int currentScore;
int pastScore;
public float slideSpeed = 5;
private float dead_zone = -30;
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{

}
void Update()
{
currentScore = Logicscript.GetComponent().playerScore;
if (pastScore < currentScore)
{
slideSpeed += 0.1f;
pastScore = currentScore;
}
transform.position = transform.position + Vector3.left * slideSpeed * Time.deltaTime;

if (transform.position.x < dead_zone)
{
Destroy(gameObject);
}
}
}
Dann ist hier mein Logic Manager-Skript:

Code: Select all

using UnityEditor.Build.Content;
using UnityEngine;
using UnityEngine.Audio;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class Logicscript : MonoBehaviour
{
public int playerScore = 0;
public Text scoreText;
public Text highScoreText;
public GameObject deathUI;
public GameObject pauseMenuUI;
[SerializeField] private AudioClip scoreIncreaseSound;
[SerializeField] private Slider MasterVolume;
[SerializeField] private Slider SoundFXVolume;
[SerializeField] private Slider MusicVolume;
[SerializeField] private AudioSource Music;

public void Start()
{
Time.timeScale = 1;
PlayerPrefs.GetFloat("MasterVolumePref");
PlayerPrefs.GetFloat("SoundFXVolumePref");
PlayerPrefs.GetFloat("MusicVolumePref");
MasterVolume.value = PlayerPrefs.GetFloat("MasterVolumePref");
SoundFXVolume.value = PlayerPrefs.GetFloat("SoundFXVolumePref");
MusicVolume.value = PlayerPrefs.GetFloat("MusicVolumePref");
}
void Update()
{
PlayerPrefs.SetFloat("MasterVolumePref", MasterVolume.value);
PlayerPrefs.SetFloat("SoundFXVolumePref", SoundFXVolume.value);
PlayerPrefs.SetFloat("MusicVolumePref", MusicVolume.value);
if (Input.GetKeyDown(KeyCode.Escape))
{
Scene activeScene = SceneManager.GetActiveScene();
if (Time.timeScale == 1 && deathUI.activeInHierarchy == false && activeScene.buildIndex == 1)
{
Time.timeScale = 0;
PauseMenu_UI();
}
else if (Time.timeScale == 0 && deathUI.activeInHierarchy == false && activeScene.buildIndex == 1)
{
Time.timeScale = 1;
UnPause();
}
else if (deathUI.activeInHierarchy == true)
{
// Do nothing if death UI is active
}
}
}
public void IncreaseScore()
{
playerScore += 1;
scoreText.text = playerScore.ToString();

}
public void UpdateHighScore()
{
if (PlayerPrefs.HasKey("SavedHighscore"))
{
if (playerScore > PlayerPrefs.GetInt("SavedHighscore"))
{
PlayerPrefs.SetInt("SavedHighscore", playerScore);
}
}
else
{
PlayerPrefs.SetInt("SavedHighscore", playerScore);
}
}
public void Death_UI()
{
deathUI.SetActive(true);
Music.Stop();

}
public void PauseMenu_UI()
{
pauseMenuUI.SetActive(true);
}
public void UnPause()
{
pauseMenuUI.SetActive(false);
}

}
Alles andere funktioniert in meiner Szene, nur diese eine Sache ist ehrlich gesagt frustrierend, weil es buchstäblich der letzte Schritt ist und ich fertig bin und nein, ich habe kein Tutorial befolgt, also habe ich nichts Falsches benannt.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post