Reworked menu and achievements

This commit is contained in:
finnchen123
2026-01-25 12:49:13 +01:00
parent eea4992538
commit 93f02eee13
10 changed files with 256 additions and 87 deletions

View File

@@ -370,7 +370,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Easy
m_Text: Einfach
--- !u!222 &22113748
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -3352,7 +3352,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Warrior
m_Text: Krieger
--- !u!222 &385059081
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -3566,6 +3566,37 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 402060856}
m_CullTransparentMesh: 1
--- !u!1 &446493448
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 446493449}
m_Layer: 0
m_Name: GameData
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &446493449
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 446493448}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 959.6816, y: 0, z: 3891.7393}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &447210028
GameObject:
m_ObjectHideFlags: 0
@@ -7041,7 +7072,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: K
m_Text: "Klein (5 St\xE4dte)"
--- !u!222 &929276014
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -9602,7 +9633,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 800x600
m_Text: Deutsch
--- !u!222 &1225249785
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -10570,7 +10601,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Human
m_Text: Mensch
--- !u!222 &1332405179
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -10669,6 +10700,98 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1333783825}
m_CullTransparentMesh: 1
--- !u!1 &1338623866
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1338623869}
- component: {fileID: 1338623868}
- component: {fileID: 1338623867}
m_Layer: 0
m_Name: Main Camera
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &1338623867
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1338623866}
m_Enabled: 1
--- !u!20 &1338623868
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1338623866}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_Iso: 200
m_ShutterSpeed: 0.005
m_Aperture: 16
m_FocusDistance: 10
m_FocalLength: 50
m_BladeCount: 5
m_Curvature: {x: 2, y: 11}
m_BarrelClipping: 0.25
m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &1338623869
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1338623866}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1348951832
GameObject:
m_ObjectHideFlags: 0
@@ -16578,7 +16701,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Window
m_Text: Fenster
--- !u!222 &1955851823
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -17880,3 +18003,5 @@ SceneRoots:
- {fileID: 1311414698}
- {fileID: 356515707}
- {fileID: 990713968}
- {fileID: 446493449}
- {fileID: 1338623869}

View File

@@ -110,14 +110,4 @@ public class AudioHandler : MonoBehaviour
GameObject.Find("slideEffects").GetComponent<Slider>().value = playerAudio.volume;
GameObject.Find("slideMusic").GetComponent<Slider>().value = cameraAudio.volume;
}
public string saveAudioSettings()
{
string result = "";
float music = GameObject.Find("slideMusic").GetComponent<Slider>().value;
float effects = GameObject.Find("slideEffects").GetComponent<Slider>().value;
result = result + "Music:" + music + "\r\n";
result = result + "Effects:" + effects;
return result;
}
}

View File

@@ -84,7 +84,7 @@ namespace Assets.Scripts
audioHandler.playButtonClick();
saveText = saveText + uihandler.saveVideoSettings() + "\r\n";
saveText = saveText + uihandler.saveLanguage() + "\r\n";
saveText = saveText + audioHandler.saveAudioSettings() + "\r\n";
saveText = saveText + uihandler.saveAudioSettings() + "\r\n";
GameObject.Find("Controls").GetComponent<Controls>().sensitivityMouse = new Vector2(
GameObject.Find("slideSensitivityMouseHorizontal").GetComponent<Slider>().value,
GameObject.Find("slideSensitivityMouseVertical").GetComponent<Slider>().value

View File

@@ -67,9 +67,11 @@ namespace Assets.Scripts
foreach(string line in lines){
switch(line.Split(":")[0]){
case "Music":
if (!isIngame) break;
GameObject.Find("Main Camera").GetComponent<AudioSource>().volume = float.Parse(line.Split(':')[1]);
break;
case "Effects":
if (!isIngame) break;
GameObject.Find("Player").GetComponent<AudioSource>().volume = float.Parse(line.Split(':')[1]);
break;
case "Resolution":

View File

@@ -41,14 +41,47 @@ public class SteamWorksHandler : MonoBehaviour
}
}
public static void getFirstPlayAchievement()
{
if (SteamManager.Initialized)
{
bool hasAchievement;
bool success = SteamUserStats.GetAchievement("StartAchievement", out hasAchievement);
if (success && !hasAchievement)
{
SteamUserStats.SetAchievement("StartAchievement");
SteamUserStats.StoreStats();
}
}
}
public static void getCharacterCreationAchievement()
{
if (SteamManager.Initialized)
{
bool hasAchievement;
bool success = SteamUserStats.GetAchievement("CharAchievement", out hasAchievement);
if (success && !hasAchievement)
{
SteamUserStats.SetAchievement("CharAchievement");
SteamUserStats.StoreStats();
}
}
}
public static void getStandardAchievement(string name)
{
if (!isGodMode())
{
if (SteamManager.Initialized)
{
SteamUserStats.SetAchievement(name);
SteamUserStats.StoreStats();
bool hasAchievement;
bool success = SteamUserStats.GetAchievement(name, out hasAchievement);
if (success && !hasAchievement)
{
SteamUserStats.SetAchievement(name);
SteamUserStats.StoreStats();
}
}
}
}
@@ -57,8 +90,13 @@ public class SteamWorksHandler : MonoBehaviour
{
if (SteamManager.Initialized)
{
SteamUserStats.SetAchievement("GodAchievement");
SteamUserStats.StoreStats();
bool hasAchievement;
bool success = SteamUserStats.GetAchievement("GodAchievement", out hasAchievement);
if (success && !hasAchievement)
{
SteamUserStats.SetAchievement("GodAchievement");
SteamUserStats.StoreStats();
}
}
}
@@ -90,8 +128,13 @@ public class SteamWorksHandler : MonoBehaviour
{
if (SteamManager.Initialized)
{
SteamUserStats.SetAchievement(name);
SteamUserStats.StoreStats();
bool hasAchievement;
bool success = SteamUserStats.GetAchievement(name, out hasAchievement);
if (success && !hasAchievement)
{
SteamUserStats.SetAchievement(name);
SteamUserStats.StoreStats();
}
}
}
}
@@ -107,27 +150,35 @@ public class SteamWorksHandler : MonoBehaviour
{
if (!isGodMode())
{
SteamUserStats.SetAchievement("ItemAchievement");
SteamUserStats.StoreStats();
bool hasAchievement;
bool success = SteamUserStats.GetAchievement("ItemAchievement", out hasAchievement);
if (success && !hasAchievement)
{
SteamUserStats.SetAchievement("ItemAchievement");
SteamUserStats.StoreStats();
}
string name = "";
switch (item.getRarity())
{
case ItemRarity.COMMON:
SteamUserStats.SetAchievement("CommonAchievement");
SteamUserStats.StoreStats();
name = "CommonAchievement";
break;
case ItemRarity.RARE:
SteamUserStats.SetAchievement("RareAchievement");
SteamUserStats.StoreStats();
name = "RareAchievement";
break;
case ItemRarity.EPIC:
SteamUserStats.SetAchievement("EpicAchievement");
SteamUserStats.StoreStats();
name = "EpicAchievement";
break;
case ItemRarity.LEGENDARY:
SteamUserStats.SetAchievement("LegendaryAchievement");
SteamUserStats.StoreStats();
name = "LegendaryAchievement";
break;
}
success = SteamUserStats.GetAchievement(name, out hasAchievement);
if (success && !hasAchievement)
{
SteamUserStats.SetAchievement(name);
SteamUserStats.StoreStats();
}
}
}

View File

@@ -296,6 +296,16 @@ namespace Assets.Scripts
return result;
}
public string saveAudioSettings()
{
string result = "";
float music = GameObject.Find("slideMusic").GetComponent<Slider>().value;
float effects = GameObject.Find("slideEffects").GetComponent<Slider>().value;
result = result + "Music:" + music + "\r\n";
result = result + "Effects:" + effects;
return result;
}
public void openPauseMenu()
{
hideOtherElements(pauseMenu);

View File

@@ -9,13 +9,11 @@ namespace Assets.Scripts.Menu
public class ButtonHandlerMenu : MonoBehaviour
{
UIHandlerMenu uihandler;
AudioHandler audioHandler;
SceneHandler sceneHandler;
private void Start()
{
uihandler = GameObject.Find("UIHandler").GetComponent<UIHandlerMenu>();
audioHandler = GameObject.Find("AudioHandler").GetComponent<AudioHandler>();
sceneHandler = GameObject.Find("SceneHandlerLoaded").GetComponent<SceneHandler>();
if(FileHandler.hasSaveFile()){
GameObject.Find("btnLoad").GetComponent<Button>().interactable = true;
@@ -27,13 +25,11 @@ namespace Assets.Scripts.Menu
public void startGame()
{
audioHandler.playButtonClick();
uihandler.startGame(sceneHandler);
}
public void closeGame()
{
audioHandler.playButtonClick();
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#endif
@@ -42,35 +38,30 @@ namespace Assets.Scripts.Menu
public void openOptions()
{
audioHandler.playButtonClick();
uihandler.openOptions();
}
public void closeOptions()
{
audioHandler.playButtonClick();
uihandler.closeOptions();
}
public void openCreation()
{
audioHandler.playButtonClick();
uihandler.openCharacterCreation();
}
public void closeCreation()
{
audioHandler.playButtonClick();
uihandler.closeCharacterCreation();
}
public void saveOptions()
{
string saveText = "";
audioHandler.playButtonClick();
saveText = saveText + uihandler.saveVideoSettings() + "\r\n";
saveText = saveText + uihandler.saveLanguage() + "\r\n";
saveText = saveText + audioHandler.saveAudioSettings() + "\r\n";
saveText = saveText + uihandler.saveAudioSettings() + "\r\n";
saveText = saveText + "SensitivityMouse:"+GameObject.Find("slideSensitivityMouseHorizontal").GetComponent<Slider>().value + "/" + GameObject.Find("slideSensitivityMouseVertical").GetComponent<Slider>().value;
FileHandler.saveOptions(saveText);
uihandler.closeOptions();
@@ -78,7 +69,6 @@ namespace Assets.Scripts.Menu
public void loadGame()
{
audioHandler.playButtonClick();
uihandler.loadGame(sceneHandler);
}

View File

@@ -20,9 +20,9 @@ namespace Assets.Scripts.Menu
void Start()
{
FileHandler.loadOptions(false);
options.transform.localScale = new Vector3(0,0,0);
characterCreation.transform.localScale = new Vector3(0,0,0);
SteamWorksHandler.getStandardAchievement("StartAchievement");
options.transform.localScale = new Vector3(0, 0, 0);
characterCreation.transform.localScale = new Vector3(0, 0, 0);
SteamWorksHandler.getFirstPlayAchievement();
EventSystem.current.SetSelectedGameObject(GameObject.Find("btnStart"));
}
@@ -35,7 +35,6 @@ namespace Assets.Scripts.Menu
PlayerPrefs.SetString("playername", GameObject.Find("inName").GetComponent<InputField>().text);
PlayerPrefs.SetInt("difficulty", GameObject.Find("dropDifficulty").GetComponent<Dropdown>().value);
PlayerPrefs.SetInt("isLoad", 0);
SteamWorksHandler.getStandardAchievement("CharAchievement");
sceneHandler.openGameScene();
}
@@ -84,22 +83,22 @@ namespace Assets.Scripts.Menu
public void openCharacterCreation()
{
options.transform.localScale = new Vector3(0,0,0);
characterCreation.transform.localScale = new Vector3(1,1,1);
options.transform.localScale = new Vector3(0, 0, 0);
characterCreation.transform.localScale = new Vector3(1, 1, 1);
EventSystem.current.SetSelectedGameObject(GameObject.Find("inName"));
}
public void closeCharacterCreation()
{
options.transform.localScale = new Vector3(0,0,0);
characterCreation.transform.localScale = new Vector3(0,0,0);
options.transform.localScale = new Vector3(0, 0, 0);
characterCreation.transform.localScale = new Vector3(0, 0, 0);
EventSystem.current.SetSelectedGameObject(GameObject.Find("btnStart"));
}
public void openOptions()
{
options.transform.localScale = new Vector3(1,1,1);
characterCreation.transform.localScale = new Vector3(0,0,0);
options.transform.localScale = new Vector3(1, 1, 1);
characterCreation.transform.localScale = new Vector3(0, 0, 0);
FileHandler.loadOptionDisplay();
EventSystem.current.SetSelectedGameObject(GameObject.Find("btnAudio"));
showOptionView("audio");
@@ -107,12 +106,13 @@ namespace Assets.Scripts.Menu
public void closeOptions()
{
options.transform.localScale = new Vector3(0,0,0);
characterCreation.transform.localScale = new Vector3(0,0,0);
options.transform.localScale = new Vector3(0, 0, 0);
characterCreation.transform.localScale = new Vector3(0, 0, 0);
EventSystem.current.SetSelectedGameObject(GameObject.Find("btnStart"));
}
public string saveVideoSettings(){
public string saveVideoSettings()
{
GameObject resolution = GameObject.Find("dropResolution");
GameObject mode = GameObject.Find("dropMode");
string result = "";
@@ -150,12 +150,13 @@ namespace Assets.Scripts.Menu
}
break;
}
result = result + "Resolution:"+resolution.GetComponent<Dropdown>().value+"\r\n";
result = result + "Mode:"+mode.GetComponent<Dropdown>().value;
result = result + "Resolution:" + resolution.GetComponent<Dropdown>().value + "\r\n";
result = result + "Mode:" + mode.GetComponent<Dropdown>().value;
return result;
}
public string saveLanguage(){
public string saveLanguage()
{
GameObject language = GameObject.Find("dropLanguage");
string result = "";
switch (language.GetComponent<Dropdown>().value)
@@ -167,7 +168,17 @@ namespace Assets.Scripts.Menu
result = "en";
break;
}
result = "Language:"+result;
result = "Language:" + result;
return result;
}
public string saveAudioSettings()
{
string result = "";
float music = GameObject.Find("slideMusic").GetComponent<Slider>().value;
float effects = GameObject.Find("slideEffects").GetComponent<Slider>().value;
result = result + "Music:" + music + "\r\n";
result = result + "Effects:" + effects;
return result;
}
@@ -192,23 +203,29 @@ namespace Assets.Scripts.Menu
sceneHandler.openGameScene();
}
public bool isCharacterCreation(){
public bool isCharacterCreation()
{
return characterCreation.activeSelf;
}
public void showOptionView(string key){
public void showOptionView(string key)
{
GameObject optionContent = GameObject.Find("pnlContent");
for(int i = 0; i < optionContent.transform.childCount; i++){
if(optionContent.transform.GetChild(i).name.ToLower().Contains(key)){
optionContent.transform.GetChild(i).transform.localScale = new Vector3(1,1,1);
for (int i = 0; i < optionContent.transform.childCount; i++)
{
if (optionContent.transform.GetChild(i).name.ToLower().Contains(key))
{
optionContent.transform.GetChild(i).transform.localScale = new Vector3(1, 1, 1);
}
else{
optionContent.transform.GetChild(i).transform.localScale = new Vector3(0,0,0);
else
{
optionContent.transform.GetChild(i).transform.localScale = new Vector3(0, 0, 0);
}
}
}
public void switchLanguage(){
public void switchLanguage()
{
GameObject language = GameObject.Find("dropLanguage");
switch (language.GetComponent<Dropdown>().value)
{

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 51674c35e02cf3b92ab3c604f5359f2a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 7b28188d6b76b96d38e71a4b554ef98f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: