chunk 1: core gameplay scripts scenes runtime assets
This commit is contained in:
77
Assets/Scripts/Screens/ProfileScreen.cs
Normal file
77
Assets/Scripts/Screens/ProfileScreen.cs
Normal file
@@ -0,0 +1,77 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using TMPro;
|
||||
|
||||
public class ProfileScreen : MonoBehaviour
|
||||
{
|
||||
public LevelSystem levelSystem;
|
||||
public TextMeshProUGUI levelText;
|
||||
public TextMeshProUGUI xpText;
|
||||
|
||||
public Image profilePhoto;
|
||||
public Button changePhotoButton;
|
||||
|
||||
public Slider xpSlider;
|
||||
|
||||
|
||||
|
||||
|
||||
private void Start()
|
||||
{
|
||||
UpdateLevelDisplay();
|
||||
changePhotoButton.onClick.AddListener(ChangePhotoButtonClick);
|
||||
LoadProfilePhoto();
|
||||
}
|
||||
|
||||
private void UpdateLevelDisplay()
|
||||
{
|
||||
int currentLevel = levelSystem.GetCurrentLevel();
|
||||
int currentXP = levelSystem.GetCurrentXP();
|
||||
int totalXP = levelSystem.GetTotalXPNeededForLevel(currentLevel);
|
||||
|
||||
RankSystem rankSystem = new RankSystem();
|
||||
rankSystem.GetRank(currentLevel);
|
||||
Debug.Log("Player Rank: " + rankSystem.GetRank(currentLevel));
|
||||
|
||||
levelText.text = "Level " + currentLevel.ToString();
|
||||
xpText.text = currentXP.ToString() + "/" + totalXP.ToString();
|
||||
xpSlider.maxValue = totalXP;
|
||||
xpSlider.value = currentXP;
|
||||
}
|
||||
|
||||
public void ChangePhotoButtonClick()
|
||||
{
|
||||
// Open a file browser to let the user select an image file
|
||||
#if UNITY_EDITOR
|
||||
string path = UnityEditor.EditorUtility.OpenFilePanel("Select Profile Photo", "", "png,jpg,jpeg");
|
||||
|
||||
// Load the image into a texture
|
||||
byte[] fileData = System.IO.File.ReadAllBytes(path);
|
||||
Texture2D texture = new Texture2D(2, 2);
|
||||
texture.LoadImage(fileData);
|
||||
|
||||
// Set the profile photo to the loaded texture
|
||||
profilePhoto.sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
|
||||
|
||||
// Save the image to a file on disk
|
||||
string savePath = Application.persistentDataPath + "/profile_photo.png";
|
||||
System.IO.File.WriteAllBytes(savePath, fileData);
|
||||
#endif
|
||||
}
|
||||
|
||||
private void LoadProfilePhoto()
|
||||
{
|
||||
string path = Application.persistentDataPath + "/profile_photo.png";
|
||||
if (System.IO.File.Exists(path))
|
||||
{
|
||||
byte[] fileData = System.IO.File.ReadAllBytes(path);
|
||||
Texture2D texture = new Texture2D(2, 2);
|
||||
texture.LoadImage(fileData);
|
||||
profilePhoto.sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user