Implement simple user creation system
This commit is contained in:
committed by
Victor Mylle
parent
7ed5a959e2
commit
a351182aa1
45
Assets/Common/Scripts/UserList.cs
Normal file
45
Assets/Common/Scripts/UserList.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
[CreateAssetMenu(menuName = "Create new Scriptable/User/List")]
|
||||
public class UserList : ScriptableObject
|
||||
{
|
||||
[Header("Template")]
|
||||
// Reference to User template
|
||||
public ScriptableObject userTemplate;
|
||||
|
||||
[Header("Users")]
|
||||
// List of users
|
||||
public List<User> users = new List<User>();
|
||||
|
||||
// Create a new User
|
||||
public User CreateNewUser(string name, Sprite avatar)
|
||||
{
|
||||
User user = ScriptableObject.CreateInstance<User>();
|
||||
user.username = name;
|
||||
user.avatar = avatar;
|
||||
return user;
|
||||
}
|
||||
|
||||
// Create a new User and add to list
|
||||
public User CreateAndAddNewUser(string name, Sprite avatar)
|
||||
{
|
||||
User user = CreateNewUser(name, avatar);
|
||||
users.Add(user);
|
||||
EditorUtility.SetDirty(this);
|
||||
AssetDatabase.CreateAsset(user, $"Assets/Common/ScriptableObjects/Users/{name}.asset");
|
||||
AssetDatabase.SaveAssets();
|
||||
return user;
|
||||
}
|
||||
|
||||
// Get user by username, returns `null` if no user can be found with such name
|
||||
public User GetUserByUsername(string username)
|
||||
{
|
||||
foreach (User user in users)
|
||||
if (user.username == username) return user;
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user