Compare commits
39 Commits
v0.3
...
UI-showcas
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
14241c3e7b | ||
|
|
b3913c281a | ||
|
|
b0c0cdc095 | ||
|
|
db37a16155 | ||
|
|
9c7366e49c | ||
|
|
5a5a1f1542 | ||
|
|
0e997666e2 | ||
|
|
6ef35cabd4 | ||
|
|
2581cd6137 | ||
|
|
800f0ae77f | ||
|
|
bb11f4d743 | ||
|
|
f835adaa23 | ||
| f9298a055a | |||
|
|
2e3dd2e26d | ||
|
|
f2743408a3 | ||
|
|
e23de9a2d3 | ||
|
|
b5328d0b9d | ||
|
|
44d3398e03 | ||
|
|
c9ee031df3 | ||
|
|
3abc24a39c | ||
|
|
f827c29d3a | ||
|
|
0a4cb9e8c6 | ||
|
|
ac000132a9 | ||
|
|
a19d89db03 | ||
|
|
8ff5c6c4c8 | ||
|
|
746906294b | ||
|
|
1a75791d62 | ||
|
|
9dfadece44 | ||
|
|
5e26970bad | ||
|
|
f6e6afe340 | ||
|
|
96fb3c89c3 | ||
|
|
dfc69ddd76 | ||
|
|
59d69f7412 | ||
|
|
a267301ab6 | ||
|
|
94ec7e0359 | ||
|
|
0c795b09bc | ||
|
|
8501edb03a | ||
|
|
cef72508cc | ||
|
|
17abca46ea |
46
.drone.yml
46
.drone.yml
@@ -27,7 +27,7 @@ steps:
|
||||
pull: if-not-exists
|
||||
image: sonarsource/sonar-scanner-cli
|
||||
commands:
|
||||
- sonar-scanner -Dsonar.host.url=$SONAR_HOST -Dsonar.login=$SONAR_TOKEN -Dsonar.projectKey=$SONAR_PROJECT_KEY -Dsonar.projectVersion=$DRONE_REPO_BRANCH-$DRONE_COMMIT_AUTHOR-$DRONE_COMMIT -Dsonar.coverageReportPaths="./code_coverage/Report/SonarQube.xml"
|
||||
- sonar-scanner -Dsonar.host.url=$SONAR_HOST -Dsonar.login=$SONAR_TOKEN -Dsonar.projectKey=$SONAR_PROJECT_KEY -Dsonar.coverageReportPaths="./code_coverage/Report/SonarQube.xml"
|
||||
environment:
|
||||
SONAR_HOST:
|
||||
from_secret: sonar_host
|
||||
@@ -37,3 +37,47 @@ steps:
|
||||
from_secret: sonar_project_key
|
||||
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: builds
|
||||
type: docker
|
||||
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
branch:
|
||||
- master
|
||||
- development
|
||||
- Automatic-Builds
|
||||
|
||||
steps:
|
||||
- name: unity-builds
|
||||
image: docker.io/library/unity-runner:0.1
|
||||
commands:
|
||||
- mkdir -p ./wesign-builds/{tmp,WeSign-Windows,WeSign-Linux,WeSign-MacOS}
|
||||
- /opt/unity/editors/2021.3.19f1/Editor/Unity -batchmode -nographics -projectPath . -buildWindowsPlayer ./wesign-builds/tmp/WeSign-Windows.exe -quit --headless || true
|
||||
- chmod 777 -R .
|
||||
- /opt/unity/editors/2021.3.19f1/Editor/Unity -batchmode -nographics -projectPath . -buildWindowsPlayer ./wesign-builds/WeSign-Windows/WeSign.exe -quit --headless
|
||||
- /opt/unity/editors/2021.3.19f1/Editor/Unity -batchmode -nographics -projectPath . -buildLinux64Player ./wesign-builds/WeSign-Linux/WeSign -quit --headless
|
||||
- /opt/unity/editors/2021.3.19f1/Editor/Unity -batchmode -nographics -projectPath . -buildOSXUniversalPlayer ./wesign-builds/WeSign-MacOS/WeSign.app -quit --headless
|
||||
- name: commit-files
|
||||
image: alpine/git
|
||||
environment:
|
||||
GIT_AUTHOR_NAME: DroneCI
|
||||
GIT_AUTHOR_EMAIL: droneci@wesign.com
|
||||
GIT_COMMITTER_NAME: DroneCI
|
||||
GIT_COMMITTER_EMAIL: droneci@wesign.com
|
||||
commands:
|
||||
- git config --global user.name "DroneCI"
|
||||
- git config --global user.email "droneci@wesign.com"
|
||||
|
||||
- zip -r ./wesign-builds/WeSign-Windows.zip ./wesign-builds/WeSign-Windows
|
||||
- zip -r ./wesign-builds/WeSign-MacOS.zip ./wesign-builds/WeSign-MacOS
|
||||
- zip -r ./wesign-builds/WeSign-Linux.zip ./wesign-builds/WeSign-Linux
|
||||
|
||||
- git add ./wesign-builds/WeSign-Windows.zip
|
||||
- git add ./wesign-builds/WeSign-MacOS.zip
|
||||
- git add ./wesign-builds/WeSign-Linux.zip
|
||||
|
||||
- git commit -m "Add build files [skip ci]"
|
||||
- git push -f https://oauth2:ixKiNbp48zzmP5PF-epo@gitlab.ilabt.imec.be/wesign/unity-application/
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -72,5 +72,4 @@ crashlytics-build.properties
|
||||
/[Aa]ssets/[Ss]treamingAssets/aa.meta
|
||||
/[Aa]ssets/[Ss]treamingAssets/aa/*
|
||||
|
||||
.DS_Store
|
||||
/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json
|
||||
.DS_Store
|
||||
@@ -1,41 +0,0 @@
|
||||
## Description
|
||||
|
||||
_Please provide a brief summary of the changes in this merge request._
|
||||
|
||||
_If possible, add a short screengrab or some screenshots of the changes._
|
||||
|
||||
## Testing Instructions
|
||||
|
||||
_Please provide instructions on how the code reviewers can test your changes:_
|
||||
|
||||
1. [Step 1]
|
||||
2. [Step 2]
|
||||
3. [Step 3]
|
||||
4. ...
|
||||
|
||||
_Please include any specific information on test data, configurations, or other requirements that are necessary to properly test the changes._
|
||||
|
||||
Once you've tested the changes, please confirm that they work as expected and that there are no regressions or unexpected side effects. If any issues are discovered during testing, please include detailed steps to reproduce the issue in the merge request comments. Thank you!
|
||||
|
||||
## Related Issues
|
||||
|
||||
_Please list any related issues or pull requests that are relevant to this merge request._
|
||||
_E.g. WES-XXX-..._
|
||||
|
||||
## Known bugs or issues
|
||||
|
||||
_Please list any known bugs or issues related to the changes in this merge request._
|
||||
|
||||
## Checklist
|
||||
|
||||
- [ ] I have filled in this template.
|
||||
- [ ] I have tested my changes thoroughly (both in the editor + **build and run (ctrl+B)**!).
|
||||
- [ ] I have added appropriate unit tests.
|
||||
- [ ] I have updated the user documentation as necessary.
|
||||
- [ ] Code reviewed by 2 people.
|
||||
|
||||
## Additional Notes
|
||||
|
||||
_Please add any additional notes or comments that may be helpful for reviewers to understand your changes._
|
||||
|
||||
/assign_reviewer @wesign/unityappreviewers
|
||||
@@ -42,7 +42,6 @@ public class ChangeUserScreen : MonoBehaviour
|
||||
/// </summary>
|
||||
void Start()
|
||||
{
|
||||
userList.Load();
|
||||
error.SetActive(false);
|
||||
DisplayUsers();
|
||||
}
|
||||
|
||||
@@ -101,14 +101,4 @@ public class Progress
|
||||
// Raise an exception when key is not found
|
||||
throw new KeyNotFoundException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check whether a key is present
|
||||
/// </summary>
|
||||
/// <param name="key">The key to check</param>
|
||||
/// <returns>true if a item can be found with the specified key</returns>
|
||||
public bool Has(string key)
|
||||
{
|
||||
return entries.Find(x => x.key == key) != null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ public class UserList : ScriptableObject
|
||||
/// <summary>
|
||||
/// The index of the current/last logged in user in the <c>storedUsers</c> list
|
||||
/// </summary>
|
||||
public int currentUserIndex = -1;
|
||||
public int currentUserIndex;
|
||||
|
||||
/// <summary>
|
||||
/// A list containing all users (which can be serialized)
|
||||
@@ -43,13 +43,8 @@ public class UserList : ScriptableObject
|
||||
/// </summary>
|
||||
void OnEnable()
|
||||
{
|
||||
// The PATH variable can be set by the testing framework,
|
||||
// so we don't overwrite the actual userlist with test data
|
||||
if (PATH == null)
|
||||
{
|
||||
PATH = $"{Application.persistentDataPath}/users.json";
|
||||
Load();
|
||||
}
|
||||
PATH = $"{Application.persistentDataPath}/users.json";
|
||||
Load();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -76,10 +71,6 @@ public class UserList : ScriptableObject
|
||||
{
|
||||
User user = CreateNewUser(name, avatar);
|
||||
storedUserList.storedUsers.Add(user);
|
||||
if (storedUserList.storedUsers.Count == 1)
|
||||
{
|
||||
storedUserList.currentUserIndex = 0;
|
||||
}
|
||||
Save();
|
||||
return user;
|
||||
}
|
||||
@@ -112,10 +103,6 @@ public class UserList : ScriptableObject
|
||||
/// <returns>The current logged in user</returns>
|
||||
public User GetCurrentUser()
|
||||
{
|
||||
if (storedUserList.storedUsers.Count == 0)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return storedUserList.storedUsers[storedUserList.currentUserIndex];
|
||||
}
|
||||
|
||||
@@ -132,46 +119,28 @@ public class UserList : ScriptableObject
|
||||
/// Change the current user
|
||||
/// </summary>
|
||||
/// <param name="index">Index of the user in the userlist</param>
|
||||
/// <exception cref="IndexOutOfRangeException"></exception>
|
||||
public void ChangeCurrentUser(int index)
|
||||
{
|
||||
if (0 <= index && index < storedUserList.storedUsers.Count)
|
||||
{
|
||||
storedUserList.currentUserIndex = index;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
storedUserList.currentUserIndex = index;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Change the current user
|
||||
/// </summary>
|
||||
/// <param name="user">Reference to the user in the userlist</param>
|
||||
/// <exception cref="KeyNotFoundException"></exception>
|
||||
public void ChangeCurrentUser(User user)
|
||||
{
|
||||
int idx = storedUserList.storedUsers.IndexOf(user);
|
||||
if (idx < 0)
|
||||
{
|
||||
throw new KeyNotFoundException();
|
||||
}
|
||||
storedUserList.currentUserIndex = idx;
|
||||
storedUserList.currentUserIndex = storedUserList.storedUsers.IndexOf(user);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove the user
|
||||
/// </summary>
|
||||
/// <param name="index">The index of the user in the userlist</param>
|
||||
/// <returns>true if user was successful removed, false otherwise</returns
|
||||
/// <returns>true if user was successful removed, false otherwise</returns>
|
||||
public bool DeleteUser(int index)
|
||||
{
|
||||
if (0 <= index && index < storedUserList.storedUsers.Count)
|
||||
{
|
||||
return DeleteUser(storedUserList.storedUsers[index]);
|
||||
}
|
||||
return false;
|
||||
return DeleteUser(storedUserList.storedUsers[index]);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -208,14 +177,13 @@ public class UserList : ScriptableObject
|
||||
/// </summary>
|
||||
public void Load()
|
||||
{
|
||||
storedUserList.storedUsers.Clear();
|
||||
storedUserList.currentUserIndex = -1;
|
||||
|
||||
if (!File.Exists(PATH))
|
||||
try
|
||||
{
|
||||
Save();
|
||||
storedUserList.storedUsers.Clear();
|
||||
|
||||
string text = File.ReadAllText(PATH);
|
||||
storedUserList = JsonUtility.FromJson<StoredUserList>(text);
|
||||
}
|
||||
string text = File.ReadAllText(PATH);
|
||||
storedUserList = JsonUtility.FromJson<StoredUserList>(text);
|
||||
catch (FileNotFoundException) { Debug.Log($"Path '{PATH}' not found"); }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,7 +112,6 @@ public class UserProgressScreen : MonoBehaviour
|
||||
void Start()
|
||||
{
|
||||
// Assign the current user
|
||||
userList.Load();
|
||||
user = userList.GetCurrentUser();
|
||||
|
||||
// Set correct displayed items
|
||||
|
||||
@@ -7,14 +7,8 @@ using UnityEngine;
|
||||
/// <summary>
|
||||
/// Test the Progress class
|
||||
/// </summary>
|
||||
[TestFixture]
|
||||
public class ProgressTest
|
||||
public class TestProgress
|
||||
{
|
||||
/// <summary>
|
||||
/// Reference to the progress object to be tested
|
||||
/// </summary>
|
||||
private Progress progress;
|
||||
|
||||
/// <summary>
|
||||
/// A dummy serializable struct to perform test operations on
|
||||
/// </summary>
|
||||
@@ -35,179 +29,205 @@ public class ProgressTest
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Setup the tests
|
||||
/// Helper method
|
||||
/// </summary>
|
||||
[SetUp]
|
||||
public void Setup_Progress()
|
||||
/// <returns><c>true</c> if <c>Progress.AddOrUpdate(...)</c> throws a <c>SerializationException</c></returns>
|
||||
private bool AddNonSerializableStruct()
|
||||
{
|
||||
progress = new Progress();
|
||||
Progress progress = new Progress();
|
||||
NonSerializableStruct nss = new NonSerializableStruct();
|
||||
try { progress.AddOrUpdate<NonSerializableStruct>("key", nss); }
|
||||
catch (SerializationException) { return true; }
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Helper method
|
||||
/// </summary>
|
||||
/// <returns><c>true</c> if <c>Progress.Get(...)</c> throws a <c>KeyNotFoundException</c></returns>
|
||||
private bool AccessInvalidKey()
|
||||
{
|
||||
Progress progress = new Progress();
|
||||
try { progress.Get<int>("non-existing key"); }
|
||||
catch (KeyNotFoundException) { return true; }
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Helper method
|
||||
/// </summary>
|
||||
/// <returns><c>true</c> if <c>Progress.Get(...)</c> throws a <c>InvalidCastException</c></returns>
|
||||
private bool AccessInvalidType()
|
||||
{
|
||||
Progress progress = new Progress();
|
||||
progress.AddOrUpdate<int>("key", 123456789);
|
||||
try { progress.Get<double>("key"); }
|
||||
catch (InvalidCastException) { return true; }
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test for creation of a new progress
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_New_Progress()
|
||||
public void TestNewProgress()
|
||||
{
|
||||
Assert.IsNotNull(progress);
|
||||
Progress progress = new Progress();
|
||||
Debug.Assert(progress != null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether invalid data will not be added
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_Progress_Add_InvalidData()
|
||||
public void TestProgressAddInvalidData()
|
||||
{
|
||||
Assert.IsFalse(progress.AddOrUpdate<GameObject>("key", null));
|
||||
Progress progress = new Progress();
|
||||
Debug.Assert(!progress.AddOrUpdate<GameObject>("key", null));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a duplicated key will be added
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_Progress_Add_DuplicateKey()
|
||||
public void TestProgressAddDuplicateKey()
|
||||
{
|
||||
Progress progress = new Progress();
|
||||
progress.AddOrUpdate<int>("key 1", 0);
|
||||
Assert.IsTrue(progress.AddOrUpdate<int>("key 1", 1));
|
||||
Debug.Assert(progress.AddOrUpdate<int>("key 1", 1));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a <c>int</c> value can be added
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_Progress_Add_Int()
|
||||
public void TestProgressAddInt()
|
||||
{
|
||||
Assert.IsTrue(progress.AddOrUpdate<int>("key", 1));
|
||||
Progress progress = new Progress();
|
||||
Debug.Assert(progress.AddOrUpdate<int>("key", 1));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a <c>double</c> value can be added
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_Progress_Add_Double()
|
||||
public void TestProgressAddDouble()
|
||||
{
|
||||
Assert.IsTrue(progress.AddOrUpdate<double>("key", 1.0));
|
||||
Progress progress = new Progress();
|
||||
Debug.Assert(progress.AddOrUpdate<double>("key", 1.0));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a <c>string</c> value can be added
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_Progress_Add_String()
|
||||
public void TestProgressAddString()
|
||||
{
|
||||
Assert.IsTrue(progress.AddOrUpdate<string>("key", "Hello World!"));
|
||||
Progress progress = new Progress();
|
||||
Debug.Assert(progress.AddOrUpdate<string>("key", "Hello World!"));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a serializable struct can be added
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_Progress_Add_SerializableStruct()
|
||||
public void TestProgressAddSerializableStruct()
|
||||
{
|
||||
Assert.IsTrue(progress.AddOrUpdate<SerializableStruct>("key", new SerializableStruct()));
|
||||
Progress progress = new Progress();
|
||||
Debug.Assert(progress.AddOrUpdate<SerializableStruct>("key", new SerializableStruct()));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a non-serializable struct will throw an error
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_Progress_Add_NonSerializableStruct()
|
||||
public void TestProgressAddNonSerializableStruct()
|
||||
{
|
||||
NonSerializableStruct nss = new NonSerializableStruct();
|
||||
Assert.Throws<SerializationException>(delegate { progress.AddOrUpdate<NonSerializableStruct>("key", nss); });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a key is present
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_Progress_Has_ValidKey()
|
||||
{
|
||||
progress.AddOrUpdate<int>("key", 1);
|
||||
Assert.IsTrue(progress.Has("key"));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a key is not present
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_Progress_Has_InvalidKey()
|
||||
{
|
||||
Assert.IsFalse(progress.Has("non-existing key"));
|
||||
Debug.Assert(AddNonSerializableStruct());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether an invalid key will throw an error
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_Progress_Get_InvalidKey()
|
||||
public void TestProgressGetInvalidKey()
|
||||
{
|
||||
Assert.Throws<KeyNotFoundException>(delegate { progress.Get<int>("non-existing key"); });
|
||||
Debug.Assert(AccessInvalidKey());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether an invalid type will throw an error
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_Progress_Get_InvalidType()
|
||||
public void TestProgressGetInvalidType()
|
||||
{
|
||||
progress.AddOrUpdate<int>("key", 123456789);
|
||||
Assert.Throws<InvalidCastException>(delegate { progress.Get<double>("key"); });
|
||||
Debug.Assert(AccessInvalidType());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a value is correctly updated
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_Progress_Update()
|
||||
public void TestProgressUpdate()
|
||||
{
|
||||
Progress progress = new Progress();
|
||||
progress.AddOrUpdate<int>("key", 1);
|
||||
Assert.AreEqual(progress.Get<int>("key"), 1);
|
||||
Debug.Assert(progress.Get<int>("key") == 1);
|
||||
progress.AddOrUpdate<int>("key", 2);
|
||||
Assert.AreEqual(progress.Get<int>("key"), 2);
|
||||
Debug.Assert(progress.Get<int>("key") == 2);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a <c>int</c> value can be read
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_Progress_Get_Int()
|
||||
public void TestProgressGetInt()
|
||||
{
|
||||
Progress progress = new Progress();
|
||||
progress.AddOrUpdate<int>("key", 1);
|
||||
Assert.AreEqual(progress.Get<int>("key"), 1);
|
||||
Debug.Assert(progress.Get<int>("key") == 1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a <c>double</c> value can be read
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_Progress_Get_Double()
|
||||
public void TestProgressGetDouble()
|
||||
{
|
||||
Progress progress = new Progress();
|
||||
progress.AddOrUpdate<double>("key", 1.0);
|
||||
Assert.AreEqual(progress.Get<double>("key"), 1.0);
|
||||
Debug.Assert(progress.Get<double>("key") == 1.0);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a <c>string</c> value can be read
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_Progress_Get_String()
|
||||
public void TestProgressGetString()
|
||||
{
|
||||
Progress progress = new Progress();
|
||||
progress.AddOrUpdate<string>("key", "Hello World!");
|
||||
Assert.AreEqual(progress.Get<string>("key"), "Hello World!");
|
||||
Debug.Assert(progress.Get<string>("key") == "Hello World!");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a serializable struct can be read
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_Progress_Get_Struct()
|
||||
public void TestProgressGetStruct()
|
||||
{
|
||||
Progress progress = new Progress();
|
||||
|
||||
int R = 1, G = 10, B = 100;
|
||||
float X = 0.1f, Y = 0.01f, Z = 0.001f;
|
||||
SerializableStruct data = new SerializableStruct { r = R, g = G, b = B, x = X, y = Y, z = Z };
|
||||
progress.AddOrUpdate<SerializableStruct>("key", data);
|
||||
SerializableStruct result = progress.Get<SerializableStruct>("key");
|
||||
Assert.AreEqual(result, data);
|
||||
Debug.Assert(result.r == R);
|
||||
Debug.Assert(result.g == G);
|
||||
Debug.Assert(result.b == B);
|
||||
Debug.Assert(result.x == X);
|
||||
Debug.Assert(result.y == Y);
|
||||
Debug.Assert(result.z == Z);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,33 +1,30 @@
|
||||
using NUnit.Framework;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// Test the UserCreationScreen class
|
||||
/// </summary>
|
||||
[TestFixture]
|
||||
public class UserCreationScreenTest
|
||||
public class TestUserCreationScreen
|
||||
{
|
||||
/// <summary>
|
||||
/// Tets IsValidUsername will return <c>true</c> for an valid username
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserCreationScreen_IsValidUsername_True()
|
||||
public void TestIsValidUsernameTrue()
|
||||
{
|
||||
foreach (char c in "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
|
||||
Assert.IsTrue(UserCreationScreen.IsValidUsername(c.ToString()));
|
||||
Debug.Assert(UserCreationScreen.IsValidUsername(c.ToString()));
|
||||
|
||||
Assert.IsTrue(UserCreationScreen.IsValidUsername("123456789AbC"));
|
||||
Debug.Assert(UserCreationScreen.IsValidUsername("123456789AbC"));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tets IsValidUsername will return <c>false</c> for an invalid username
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserCreationScreen_IsValidUsername_False()
|
||||
public void TestIsValidUsernameFalse()
|
||||
{
|
||||
Assert.IsFalse(UserCreationScreen.IsValidUsername(string.Empty));
|
||||
Debug.Assert(!UserCreationScreen.IsValidUsername(string.Empty));
|
||||
foreach (char c in " \n\t+-*/%_.,;:!?(){}[]\\'\"|&~^$")
|
||||
Assert.IsFalse(UserCreationScreen.IsValidUsername(c.ToString()));
|
||||
Debug.Assert(!UserCreationScreen.IsValidUsername(c.ToString()));
|
||||
|
||||
Assert.IsFalse(UserCreationScreen.IsValidUsername("123456789_10_11_12_13"));
|
||||
Debug.Assert(!UserCreationScreen.IsValidUsername("123456789_10_11_12_13"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,470 +0,0 @@
|
||||
using NUnit.Framework;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// Test the UserList class
|
||||
/// </summary>
|
||||
[TestFixture]
|
||||
public class UserListTest
|
||||
{
|
||||
/// <summary>
|
||||
/// Create a new path so the existing users.json file will not be overwritten
|
||||
/// </summary>
|
||||
private static string PATH = $"{Application.persistentDataPath}/unit_test_users.json";
|
||||
|
||||
/// <summary>
|
||||
/// NUnit test magic (for skipping the setup)
|
||||
/// </summary>
|
||||
public const string SKIP_SETUP = "SKIP_SETUP";
|
||||
|
||||
/// <summary>
|
||||
/// Reference to the userlist to be tested
|
||||
/// </summary>
|
||||
private UserList userList;
|
||||
|
||||
/// <summary>
|
||||
/// Helper variable for quick user creation
|
||||
/// </summary>
|
||||
private string username = "u5erNam3";
|
||||
|
||||
/// <summary>
|
||||
/// Helper variable for quick user creation
|
||||
/// </summary>
|
||||
private Sprite avatar = Sprite.Create(
|
||||
Texture2D.blackTexture,
|
||||
new Rect(0, 0, Texture2D.blackTexture.width, Texture2D.blackTexture.height),
|
||||
new Vector2(0.5f, 0.5f)
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Setup the tests
|
||||
/// </summary>
|
||||
[SetUp]
|
||||
public void Setup_UserList()
|
||||
{
|
||||
// Check whether the current test needs to skip the setup
|
||||
ArrayList cat = TestContext.CurrentContext.Test.Properties["_CATEGORIES"] as ArrayList;
|
||||
bool skip = cat != null && cat.Contains(SKIP_SETUP);
|
||||
if (!skip)
|
||||
{
|
||||
// The actual setup code
|
||||
UserList.PATH = UserListTest.PATH;
|
||||
userList = ScriptableObject.CreateInstance<UserList>();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether the UserList.PATH is correctly set
|
||||
/// </summary>
|
||||
[Test]
|
||||
[Category(SKIP_SETUP)]
|
||||
public void Test_UserList_OnEnable()
|
||||
{
|
||||
UserList.PATH = null;
|
||||
userList = ScriptableObject.CreateInstance<UserList>();
|
||||
Assert.AreEqual($"{Application.persistentDataPath}/users.json", UserList.PATH);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test for creation of a new UserList
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_New_UserList()
|
||||
{
|
||||
Assert.IsNotNull(userList);
|
||||
Assert.Zero(userList.GetUsers().Count);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test for creation of new user (without adding the user to the list)
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_CreateNewUser()
|
||||
{
|
||||
User user = userList.CreateNewUser(username, avatar);
|
||||
|
||||
Assert.IsNotNull(user);
|
||||
Assert.Zero(userList.GetUsers().Count);
|
||||
Assert.AreEqual(username, user.username);
|
||||
Assert.AreEqual(avatar, user.avatar);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test for creating a new user and adding the user to the list
|
||||
/// </summary>
|
||||
public void Test_UserList_CreateAndAddNewUser()
|
||||
{
|
||||
Assert.AreEqual(-1, userList.GetCurrentUserIndex());
|
||||
User user = userList.CreateAndAddNewUser(username, avatar);
|
||||
|
||||
Assert.IsNotNull(user);
|
||||
Assert.AreEqual(1, userList.GetUsers().Count);
|
||||
Assert.AreEqual(user, userList.GetUsers()[0]);
|
||||
Assert.Zero(userList.GetCurrentUserIndex());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether an existing user can be found by its username
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_GetUserByUsername_Valid()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser(username, avatar);
|
||||
User v = userList.GetUserByUsername(username);
|
||||
Assert.AreEqual(u, v);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a non-existing user can not be found
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_GetUserByUsername_Null()
|
||||
{
|
||||
User user = userList.GetUserByUsername("not-a-user");
|
||||
Assert.IsNull(user);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether the correct current user is returned
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_GetCurrentUser()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateAndAddNewUser($"{username}_{'v'}", avatar);
|
||||
User w = userList.CreateAndAddNewUser($"{username}_{'w'}", avatar);
|
||||
userList.ChangeCurrentUser(2);
|
||||
|
||||
User W = userList.GetCurrentUser();
|
||||
Assert.AreEqual(w, W);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a null user is returned when the userlist is empty
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_GetCurrent_Empty()
|
||||
{
|
||||
User user = userList.GetCurrentUser();
|
||||
Assert.IsNull(user);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether the correct index is returned for the current user
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_GetCurrentUserIndex()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateAndAddNewUser($"{username}_{'v'}", avatar);
|
||||
User w = userList.CreateAndAddNewUser($"{username}_{'w'}", avatar);
|
||||
userList.ChangeCurrentUser(2);
|
||||
|
||||
int idx = userList.GetCurrentUserIndex();
|
||||
Assert.AreEqual(2, idx);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a bad index is returned when the userlist is empty
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_GetCurrentUserIndex_Empty()
|
||||
{
|
||||
Assert.AreEqual(-1, userList.GetCurrentUserIndex());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether the current user (referenced by index) is correctly changed
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_ChangeCurrentUser_ValidIndex()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateAndAddNewUser($"{username}_{'v'}", avatar);
|
||||
User w = userList.CreateAndAddNewUser($"{username}_{'w'}", avatar);
|
||||
userList.ChangeCurrentUser(2);
|
||||
|
||||
User W = userList.GetCurrentUser();
|
||||
Assert.AreEqual(w, W);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether the current user is not changed when a bad index is given
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_ChangeCurrentUser_InvalidIndex()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateAndAddNewUser($"{username}_{'v'}", avatar);
|
||||
User w = userList.CreateAndAddNewUser($"{username}_{'w'}", avatar);
|
||||
Assert.Throws<IndexOutOfRangeException>(delegate { userList.ChangeCurrentUser(-1); });
|
||||
Assert.Throws<IndexOutOfRangeException>(delegate { userList.ChangeCurrentUser(5); });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether the current user is not changed when a bad index is given
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_ChangeCurrentUser_IndexEmpty()
|
||||
{
|
||||
Assert.Throws<IndexOutOfRangeException>(delegate { userList.ChangeCurrentUser(0); });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether the current user is correctly changed
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_ChangeCurrentUser_ValidUser()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateAndAddNewUser($"{username}_{'v'}", avatar);
|
||||
User w = userList.CreateAndAddNewUser($"{username}_{'w'}", avatar);
|
||||
userList.ChangeCurrentUser(v);
|
||||
User V = userList.GetCurrentUser();
|
||||
Assert.AreEqual(v, V);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether the current user is not changed when a non-existing user is given
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_ChangeCurrentUser_InvalidUser()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateNewUser($"{username}_{'v'}", avatar);
|
||||
Assert.Throws<KeyNotFoundException>(delegate { userList.ChangeCurrentUser(v); });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether the current user is not changed when a null user is given
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_ChangeCurrentUser_NullUser()
|
||||
{
|
||||
Assert.Throws<KeyNotFoundException>(delegate { userList.ChangeCurrentUser(null); });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether deleting a existing user (referenced by index) will correctly be removed
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_DeleteUser_ValidIndex()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateAndAddNewUser($"{username}_{'v'}", avatar);
|
||||
User w = userList.CreateAndAddNewUser($"{username}_{'w'}", avatar);
|
||||
Assert.IsTrue(userList.DeleteUser(1));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether deleting a non-existing user (referenced by wrong index) will fail
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_DeleteUser_InValidIndex()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateAndAddNewUser($"{username}_{'v'}", avatar);
|
||||
User w = userList.CreateAndAddNewUser($"{username}_{'w'}", avatar);
|
||||
Assert.IsFalse(userList.DeleteUser(-1));
|
||||
Assert.IsFalse(userList.DeleteUser(5));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether deleting any user from an empty userlist will fail
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_DeleteUser_IndexEmpty()
|
||||
{
|
||||
Assert.IsFalse(userList.DeleteUser(0));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether deleting an existing user will correctly remove the user and set the currentUserIndex correctly
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_DeleteUser_LastValid()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateAndAddNewUser($"{username}_{'v'}", avatar);
|
||||
User w = userList.CreateAndAddNewUser($"{username}_{'w'}", avatar);
|
||||
userList.ChangeCurrentUser(2);
|
||||
|
||||
Assert.AreEqual(3, userList.GetUsers().Count);
|
||||
Assert.AreEqual(2, userList.GetCurrentUserIndex());
|
||||
Assert.IsTrue(userList.DeleteUser(w));
|
||||
Assert.AreEqual(2, userList.GetUsers().Count);
|
||||
Assert.AreEqual(1, userList.GetCurrentUserIndex());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether deleting an existing user will remove the user correctly
|
||||
/// </summary>
|
||||
/// <remarks>This will change the currentUserIndex to point to another user</remarks>
|
||||
[Test]
|
||||
public void Test_UserList_DeleteUser_FirstValid()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateAndAddNewUser($"{username}_{'v'}", avatar);
|
||||
User w = userList.CreateAndAddNewUser($"{username}_{'w'}", avatar);
|
||||
userList.ChangeCurrentUser(0);
|
||||
|
||||
Assert.AreEqual(3, userList.GetUsers().Count);
|
||||
Assert.AreEqual(0, userList.GetCurrentUserIndex());
|
||||
Assert.IsTrue(userList.DeleteUser(u));
|
||||
Assert.AreEqual(2, userList.GetUsers().Count);
|
||||
Assert.AreEqual(0, userList.GetCurrentUserIndex());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether deleting a non-existing user will not affect the userlist
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_DeleteUser_Invalid()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateNewUser($"{username}_{'v'}", avatar);
|
||||
|
||||
Assert.AreEqual(1, userList.GetUsers().Count);
|
||||
Assert.IsFalse(userList.DeleteUser(v));
|
||||
Assert.AreEqual(1, userList.GetUsers().Count);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether calling the DeleteUser function on an empty list will not affect the userlist
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_DeleteUser_Empty()
|
||||
{
|
||||
User user = userList.CreateNewUser(username, avatar);
|
||||
Assert.Zero(userList.GetUsers().Count);
|
||||
Assert.IsFalse(userList.DeleteUser(user));
|
||||
Assert.Zero(userList.GetUsers().Count);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a savefile is correctly constructed when no savefile is present
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_Save_New()
|
||||
{
|
||||
if (File.Exists(PATH))
|
||||
{
|
||||
File.Delete(PATH);
|
||||
}
|
||||
|
||||
List<User> u = new List<User>();
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
u.Add(userList.CreateAndAddNewUser($"{username}_{i}", avatar));
|
||||
}
|
||||
userList.ChangeCurrentUser(3);
|
||||
userList.Save();
|
||||
FileAssert.Exists(PATH);
|
||||
|
||||
string content = File.ReadAllText(PATH);
|
||||
int id = avatar.GetInstanceID();
|
||||
string expected = $"{{\"currentUserIndex\":3,\"storedUsers\":[{{\"username\":\"u5erNam3_0\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}},{{\"username\":\"u5erNam3_1\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}},{{\"username\":\"u5erNam3_2\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}},{{\"username\":\"u5erNam3_3\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}},{{\"username\":\"u5erNam3_4\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}}]}}";
|
||||
Assert.AreEqual(expected, content);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a savefile is correctly constructed when a savefile already exists
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_Save_Existing()
|
||||
{
|
||||
if (!File.Exists(PATH))
|
||||
{
|
||||
File.CreateText(PATH).Close();
|
||||
File.WriteAllText(PATH, "https://www.youtube.com/watch?v=dQw4w9WgXcQ");
|
||||
}
|
||||
|
||||
List<User> u = new List<User>();
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
u.Add(userList.CreateAndAddNewUser($"{username}_{i}", avatar));
|
||||
}
|
||||
userList.ChangeCurrentUser(3);
|
||||
userList.Save();
|
||||
FileAssert.Exists(PATH);
|
||||
|
||||
string content = File.ReadAllText(PATH);
|
||||
int id = avatar.GetInstanceID();
|
||||
string expected = $"{{\"currentUserIndex\":3,\"storedUsers\":[{{\"username\":\"u5erNam3_0\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}},{{\"username\":\"u5erNam3_1\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}},{{\"username\":\"u5erNam3_2\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}},{{\"username\":\"u5erNam3_3\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}},{{\"username\":\"u5erNam3_4\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}}]}}";
|
||||
Assert.AreEqual(expected, content);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a save file is correctly constructed from an empty userlist
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_Save_Empty()
|
||||
{
|
||||
userList.Save();
|
||||
FileAssert.Exists(PATH);
|
||||
|
||||
string content = File.ReadAllText(PATH);
|
||||
string expected = "{\"currentUserIndex\":-1,\"storedUsers\":[]}";
|
||||
Assert.AreEqual(expected, content);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a userlist (containing some users) is correrctly loaded
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_Load()
|
||||
{
|
||||
List<User> u = new List<User>();
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
u.Add(userList.CreateAndAddNewUser($"{username}_{i}", avatar));
|
||||
}
|
||||
userList.ChangeCurrentUser(3);
|
||||
userList.Save();
|
||||
|
||||
userList.Load();
|
||||
Assert.AreEqual(userList.GetUsers().Count, u.Count);
|
||||
Assert.AreEqual(userList.GetCurrentUserIndex(), 3);
|
||||
List<User> v = userList.GetUsers();
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
Assert.AreEqual(u[i].username, v[i].username);
|
||||
Assert.AreEqual(u[i].avatar, v[i].avatar);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether an empty userlist is correctly loaded
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_Load_Empty()
|
||||
{
|
||||
userList.Save();
|
||||
userList.Load();
|
||||
Assert.Zero(userList.GetUsers().Count);
|
||||
Assert.AreEqual(-1, userList.GetCurrentUserIndex());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test if the user save file is not found, a new one will be created and an empty userlist will be loaded
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_Load_NotFound()
|
||||
{
|
||||
List<User> u = new List<User>();
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
u.Add(userList.CreateAndAddNewUser($"{username}_{i}", avatar));
|
||||
}
|
||||
userList.ChangeCurrentUser(3);
|
||||
userList.Save();
|
||||
|
||||
File.Delete(PATH);
|
||||
userList.Load();
|
||||
Assert.Zero(userList.GetUsers().Count);
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cc44c73b32b9af7469b76bd6071f0cf5
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,166 +1,150 @@
|
||||
using NUnit.Framework;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// Test the User class
|
||||
/// </summary>
|
||||
[TestFixture]
|
||||
public class UserTest
|
||||
public class TestUser
|
||||
{
|
||||
/// <summary>
|
||||
/// Reference to the user to be tested
|
||||
/// </summary>
|
||||
private User user;
|
||||
|
||||
/// <summary>
|
||||
/// Setup the tests
|
||||
/// </summary>
|
||||
[SetUp]
|
||||
public void Setup_User()
|
||||
{
|
||||
user = new User();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Test for the creation of a new user
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_New_User()
|
||||
public void TestNewUser()
|
||||
{
|
||||
Assert.NotNull(user);
|
||||
Assert.Zero(user.courses.Count);
|
||||
Assert.Zero(user.minigames.Count);
|
||||
User user = new User();
|
||||
Debug.Assert(user != null);
|
||||
Debug.Assert(user.courses.Count == 0);
|
||||
Debug.Assert(user.minigames.Count == 0);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether progress on a new course can be added
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_User_AddCourse()
|
||||
public void TestUserAddCourse()
|
||||
{
|
||||
User user = new User();
|
||||
Progress p = new Progress();
|
||||
user.courses.Add(p);
|
||||
Assert.AreEqual(user.courses.Count, 1);
|
||||
Assert.Zero(user.minigames.Count);
|
||||
Debug.Assert(user.courses.Count == 1);
|
||||
Debug.Assert(user.minigames.Count == 0);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether progress on a new minigame can be added
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_User_AddMinigame()
|
||||
public void TestUserAddMinigame()
|
||||
{
|
||||
User user = new User();
|
||||
Progress p = new Progress();
|
||||
user.minigames.Add(p);
|
||||
Assert.Zero(user.courses.Count);
|
||||
Assert.AreEqual(user.minigames.Count, 1);
|
||||
Debug.Assert(user.courses.Count == 0);
|
||||
Debug.Assert(user.minigames.Count == 1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test GetRecentCourses will return empty when no progress is stored
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_User_GetRecentCourses_Empty()
|
||||
public void TestGetRecentCoursesEmpty()
|
||||
{
|
||||
Assert.Zero(user.GetRecentCourses().Count);
|
||||
User user = new User();
|
||||
Debug.Assert(user.GetRecentCourses().Count == 0);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// TEMPORARY test for GetRecentCourses will return all progress that is stored
|
||||
/// Temporary test for GetRecentCourses will return all progress that is stored
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_User_GetRecentCourses_All()
|
||||
public void TestGetRecentCoursesAll()
|
||||
{
|
||||
User user = new User();
|
||||
Progress p = new Progress();
|
||||
p.AddOrUpdate<CourseIndex>("courseIndex", CourseIndex.FINGERSPELLING);
|
||||
p.AddOrUpdate<float>("courseProgress", 0.5f);
|
||||
user.courses.Add(p);
|
||||
List<Tuple<CourseIndex, float>> list = user.GetRecentCourses();
|
||||
Assert.AreEqual(list.Count, 1);
|
||||
Assert.AreEqual(list[0].Item1, CourseIndex.FINGERSPELLING);
|
||||
Assert.AreEqual(list[0].Item2, 0.5f);
|
||||
Debug.Assert(list.Count == 1);
|
||||
Debug.Assert(list[0].Item1 == CourseIndex.FINGERSPELLING);
|
||||
Debug.Assert(list[0].Item2 == 0.5f);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test GetRecommendedCourses will return <c>Tuple<CourseIndex.FINGERSPELLING, 0.0></c> when no progress is stored
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_User_GetRecommendedCourses_Empty()
|
||||
public void TestGetRecommendedCoursesEmpty()
|
||||
{
|
||||
User user = new User();
|
||||
List<Tuple<CourseIndex, float>> list = user.GetRecommendedCourses();
|
||||
Assert.AreEqual(list.Count, 1);
|
||||
Assert.AreEqual(list[0].Item1, CourseIndex.FINGERSPELLING);
|
||||
Assert.AreEqual(list[0].Item2, 0.0f);
|
||||
Debug.Assert(list.Count == 1);
|
||||
Debug.Assert(list[0].Item1 == CourseIndex.FINGERSPELLING);
|
||||
Debug.Assert(list[0].Item2 == 0.0f);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// TEMPORARY test for GetRecommenedCourses will return all progress that is stored
|
||||
/// Temporary test for GetRecommenedCourses will return all progress that is stored
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_User_GetRecommendedCourses_All()
|
||||
public void TestGetRecommendedCoursesAll()
|
||||
{
|
||||
User user = new User();
|
||||
Progress p = new Progress();
|
||||
p.AddOrUpdate<CourseIndex>("courseIndex", CourseIndex.FINGERSPELLING);
|
||||
p.AddOrUpdate<float>("courseProgress", 0.5f);
|
||||
user.courses.Add(p);
|
||||
List<Tuple<CourseIndex, float>> list = user.GetRecommendedCourses();
|
||||
Assert.AreEqual(list.Count, 1);
|
||||
Assert.AreEqual(list[0].Item1, CourseIndex.FINGERSPELLING);
|
||||
Assert.AreEqual(list[0].Item2, 0.5f);
|
||||
Debug.Assert(list.Count == 1);
|
||||
Debug.Assert(list[0].Item1 == CourseIndex.FINGERSPELLING);
|
||||
Debug.Assert(list[0].Item2 == 0.5f);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test GetCourseProgress returns null when course cannot be found
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_User_GetCourseProgress_Null()
|
||||
public void TestGetCourseProgressNull()
|
||||
{
|
||||
Assert.Null(user.GetCourseProgress(CourseIndex.FINGERSPELLING));
|
||||
Assert.Null(user.GetCourseProgress((CourseIndex)100));
|
||||
User user = new User();
|
||||
Debug.Assert(user.GetCourseProgress(CourseIndex.FINGERSPELLING) == null);
|
||||
Debug.Assert(user.GetCourseProgress((CourseIndex)100) == null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test GetCourseProgress returns correct progress object
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_User_GetCourseProgress_Valid()
|
||||
public void TestGetCourseProgressValid()
|
||||
{
|
||||
User user = new User();
|
||||
Progress p = new Progress();
|
||||
p.AddOrUpdate<CourseIndex>("courseIndex", CourseIndex.FINGERSPELLING);
|
||||
p.AddOrUpdate<float>("courseProgress", 3.14159265f);
|
||||
user.courses.Add(p);
|
||||
Progress q = user.GetCourseProgress(CourseIndex.FINGERSPELLING);
|
||||
Assert.AreEqual(q.Get<CourseIndex>("courseIndex"), CourseIndex.FINGERSPELLING);
|
||||
Assert.AreEqual(q.Get<float>("courseProgress"), 3.14159265f);
|
||||
Debug.Assert(q.Get<CourseIndex>("courseIndex") == CourseIndex.FINGERSPELLING);
|
||||
Debug.Assert(q.Get<float>("courseProgress") == 3.14159265f);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test GetMinigameProgress returns null when minigame cannot be found
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_User_GetMinigameProgress_Null()
|
||||
public void TestGetMinigameProgressNull()
|
||||
{
|
||||
Assert.Null(user.GetMinigameProgress(MinigameIndex.SPELLING_BEE));
|
||||
Assert.Null(user.GetMinigameProgress((MinigameIndex)100));
|
||||
User user = new User();
|
||||
Debug.Assert(user.GetMinigameProgress(MinigameIndex.SPELLING_BEE) == null);
|
||||
Debug.Assert(user.GetMinigameProgress((MinigameIndex)100) == null);
|
||||
|
||||
Progress p = new Progress();
|
||||
p.AddOrUpdate<MinigameIndex>("minigameIndex", MinigameIndex.SPELLING_BEE);
|
||||
user.minigames.Add(p);
|
||||
Assert.Null(user.GetMinigameProgress(MinigameIndex.HANGMAN));
|
||||
Debug.Assert(user.GetMinigameProgress(MinigameIndex.HANGMAN) == null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test GetMinigameProgress returns correct progress object
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_User_GetMinigameProgress_Valid()
|
||||
public void TestGetMinigameProgressValid()
|
||||
{
|
||||
User user = new User();
|
||||
Progress p = new Progress();
|
||||
p.AddOrUpdate<MinigameIndex>("minigameIndex", MinigameIndex.SPELLING_BEE);
|
||||
user.minigames.Add(p);
|
||||
Progress q = user.GetMinigameProgress(MinigameIndex.SPELLING_BEE);
|
||||
Assert.AreEqual(q.Get<CourseIndex>("minigameIndex"), CourseIndex.FINGERSPELLING);
|
||||
Debug.Assert(q.Get<CourseIndex>("minigameIndex") == CourseIndex.FINGERSPELLING);
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
504
Assets/Common/Fonts/contb SDF.asset
Normal file
504
Assets/Common/Fonts/contb SDF.asset
Normal file
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3602bedf0ebe5b64596873f09eddf57b
|
||||
guid: 1abd0cd4bed0f2b4082734f91e1d4676
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
BIN
Assets/Common/Fonts/contb.ttf
Normal file
BIN
Assets/Common/Fonts/contb.ttf
Normal file
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2bce9312e55b8de45a7cc2d163604db6
|
||||
guid: b9b37628356c3424d9c240aa7bf35289
|
||||
TrueTypeFontImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 4
|
||||
@@ -9,7 +9,7 @@ TrueTypeFontImporter:
|
||||
characterPadding: 1
|
||||
includeFontData: 1
|
||||
fontNames:
|
||||
- KorolevCondensedW04-Bold
|
||||
- Continuum Bold
|
||||
fallbackFontReferences: []
|
||||
customCharacters:
|
||||
fontRenderingMode: 0
|
||||
BIN
Assets/Common/Fonts/contl.ttf
Normal file
BIN
Assets/Common/Fonts/contl.ttf
Normal file
Binary file not shown.
21
Assets/Common/Fonts/contl.ttf.meta
Normal file
21
Assets/Common/Fonts/contl.ttf.meta
Normal file
@@ -0,0 +1,21 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e223d9d2d83a6e348acec604dc07783d
|
||||
TrueTypeFontImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 4
|
||||
fontSize: 16
|
||||
forceTextureCase: -2
|
||||
characterSpacing: 0
|
||||
characterPadding: 1
|
||||
includeFontData: 1
|
||||
fontNames:
|
||||
- Continuum Light
|
||||
fallbackFontReferences: []
|
||||
customCharacters:
|
||||
fontRenderingMode: 0
|
||||
ascentCalculationMode: 1
|
||||
useLegacyBoundsCalculation: 0
|
||||
shouldRoundAdvanceValue: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
136
Assets/Common/Fonts/contm SDF - Variant.asset
Normal file
136
Assets/Common/Fonts/contm SDF - Variant.asset
Normal file
@@ -0,0 +1,136 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 71c1514a6bd24e1e882cebbe1904ce04, type: 3}
|
||||
m_Name: contm SDF - Variant
|
||||
m_EditorClassIdentifier:
|
||||
hashCode: -663352560
|
||||
material: {fileID: 6967724915443675501, guid: 9f1c2e49d7e036a40a90afa6b1d4f421, type: 2}
|
||||
materialHashCode: 753959088
|
||||
m_Version: 1.1.0
|
||||
m_SourceFontFileGUID: b9b37628356c3424d9c240aa7bf35289
|
||||
m_SourceFontFile_EditorRef: {fileID: 12800000, guid: b9b37628356c3424d9c240aa7bf35289, type: 3}
|
||||
m_SourceFontFile: {fileID: 0}
|
||||
m_AtlasPopulationMode: 0
|
||||
m_FaceInfo:
|
||||
m_FaceIndex: 0
|
||||
m_FamilyName: Continuum Medium
|
||||
m_StyleName: Regular
|
||||
m_PointSize: 90
|
||||
m_Scale: 1
|
||||
m_UnitsPerEM: 1000
|
||||
m_LineHeight: 112.41
|
||||
m_AscentLine: 90
|
||||
m_CapLine: 64
|
||||
m_MeanLine: 48
|
||||
m_Baseline: 0
|
||||
m_DescentLine: -22.410002
|
||||
m_SuperscriptOffset: 90
|
||||
m_SuperscriptSize: 0.5
|
||||
m_SubscriptOffset: -22.410002
|
||||
m_SubscriptSize: 0.5
|
||||
m_UnderlineOffset: -18.900002
|
||||
m_UnderlineThickness: 1.8000001
|
||||
m_StrikethroughOffset: 19.2
|
||||
m_StrikethroughThickness: 1.8000001
|
||||
m_TabWidth: 25
|
||||
m_GlyphTable: []
|
||||
m_CharacterTable: []
|
||||
m_AtlasTextures:
|
||||
- {fileID: -1484183440720196272, guid: 9f1c2e49d7e036a40a90afa6b1d4f421, type: 2}
|
||||
m_AtlasTextureIndex: 0
|
||||
m_IsMultiAtlasTexturesEnabled: 0
|
||||
m_ClearDynamicDataOnBuild: 0
|
||||
m_UsedGlyphRects: []
|
||||
m_FreeGlyphRects:
|
||||
- m_X: 0
|
||||
m_Y: 0
|
||||
m_Width: 1023
|
||||
m_Height: 1023
|
||||
m_fontInfo:
|
||||
Name:
|
||||
PointSize: 0
|
||||
Scale: 0
|
||||
CharacterCount: 0
|
||||
LineHeight: 0
|
||||
Baseline: 0
|
||||
Ascender: 0
|
||||
CapHeight: 0
|
||||
Descender: 0
|
||||
CenterLine: 0
|
||||
SuperscriptOffset: 0
|
||||
SubscriptOffset: 0
|
||||
SubSize: 0
|
||||
Underline: 0
|
||||
UnderlineThickness: 0
|
||||
strikethrough: 0
|
||||
strikethroughThickness: 0
|
||||
TabWidth: 0
|
||||
Padding: 0
|
||||
AtlasWidth: 0
|
||||
AtlasHeight: 0
|
||||
atlas: {fileID: 0}
|
||||
m_AtlasWidth: 1024
|
||||
m_AtlasHeight: 1024
|
||||
m_AtlasPadding: 9
|
||||
m_AtlasRenderMode: 4165
|
||||
m_glyphInfoList: []
|
||||
m_KerningTable:
|
||||
kerningPairs: []
|
||||
m_FontFeatureTable:
|
||||
m_GlyphPairAdjustmentRecords: []
|
||||
fallbackFontAssets: []
|
||||
m_FallbackFontAssetTable: []
|
||||
m_CreationSettings:
|
||||
sourceFontFileName:
|
||||
sourceFontFileGUID: 1a902f269eb0829468e18849bb4818f9
|
||||
pointSizeSamplingMode: 0
|
||||
pointSize: 90
|
||||
padding: 9
|
||||
packingMode: 0
|
||||
atlasWidth: 1024
|
||||
atlasHeight: 1024
|
||||
characterSetSelectionMode: 7
|
||||
characterSequence:
|
||||
referencedFontAssetGUID:
|
||||
referencedTextAssetGUID:
|
||||
fontStyle: 0
|
||||
fontStyleModifier: 0
|
||||
renderMode: 4165
|
||||
includeFontFeatures: 0
|
||||
m_FontWeightTable:
|
||||
- regularTypeface: {fileID: 0}
|
||||
italicTypeface: {fileID: 0}
|
||||
- regularTypeface: {fileID: 0}
|
||||
italicTypeface: {fileID: 0}
|
||||
- regularTypeface: {fileID: 0}
|
||||
italicTypeface: {fileID: 0}
|
||||
- regularTypeface: {fileID: 0}
|
||||
italicTypeface: {fileID: 0}
|
||||
- regularTypeface: {fileID: 0}
|
||||
italicTypeface: {fileID: 0}
|
||||
- regularTypeface: {fileID: 0}
|
||||
italicTypeface: {fileID: 0}
|
||||
- regularTypeface: {fileID: 0}
|
||||
italicTypeface: {fileID: 0}
|
||||
- regularTypeface: {fileID: 0}
|
||||
italicTypeface: {fileID: 0}
|
||||
- regularTypeface: {fileID: 0}
|
||||
italicTypeface: {fileID: 0}
|
||||
- regularTypeface: {fileID: 0}
|
||||
italicTypeface: {fileID: 0}
|
||||
fontWeights: []
|
||||
normalStyle: 0
|
||||
normalSpacingOffset: 0
|
||||
boldStyle: 0.75
|
||||
boldSpacing: 7
|
||||
italicStyle: 35
|
||||
tabSize: 10
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7a55c88547b9345fe87aecd1398550c9
|
||||
guid: 16fc1bc4096fb7140bf8d384ba156204
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4f0ce70309bb901feb28199a82a7d195
|
||||
guid: 9f1c2e49d7e036a40a90afa6b1d4f421
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
BIN
Assets/Common/Fonts/contm.ttf
Normal file
BIN
Assets/Common/Fonts/contm.ttf
Normal file
Binary file not shown.
21
Assets/Common/Fonts/contm.ttf.meta
Normal file
21
Assets/Common/Fonts/contm.ttf.meta
Normal file
@@ -0,0 +1,21 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1a902f269eb0829468e18849bb4818f9
|
||||
TrueTypeFontImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 4
|
||||
fontSize: 16
|
||||
forceTextureCase: -2
|
||||
characterSpacing: 0
|
||||
characterPadding: 1
|
||||
includeFontData: 1
|
||||
fontNames:
|
||||
- Continuum Medium
|
||||
fallbackFontReferences: []
|
||||
customCharacters:
|
||||
fontRenderingMode: 0
|
||||
ascentCalculationMode: 1
|
||||
useLegacyBoundsCalculation: 0
|
||||
shouldRoundAdvanceValue: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -15,7 +15,7 @@ public class BackButtonTests
|
||||
[UnitySetUp]
|
||||
public IEnumerator SetupFunction()
|
||||
{
|
||||
string path = $"{Application.persistentDataPath}/users.json";
|
||||
string path = Path.Combine("Assets", "users.json");
|
||||
var oneUser = "{\"currentUserIndex\": 0,\"storedUsers\": [{\"username\": \"TEST\",\"avatar\": {\"instanceID\": 40848},\"playtime\": 0.0,\"courses\": [],\"minigames\": []}]}";
|
||||
|
||||
using (StreamWriter writer = new StreamWriter(path))
|
||||
|
||||
@@ -15,7 +15,7 @@ public class CourseActivityTests
|
||||
[UnitySetUp]
|
||||
public IEnumerator SetupFunction()
|
||||
{
|
||||
string path = $"{Application.persistentDataPath}/users.json";
|
||||
string path = Path.Combine("Assets", "users.json");
|
||||
var oneUser = "{\"currentUserIndex\": 0,\"storedUsers\": [{\"username\": \"TEST\",\"avatar\": {\"instanceID\": 40848},\"playtime\": 0.0,\"courses\": [],\"minigames\": []}]}";
|
||||
|
||||
using (StreamWriter writer = new StreamWriter(path))
|
||||
|
||||
@@ -15,7 +15,7 @@ public class CourseMenuScreenTest
|
||||
[UnitySetUp]
|
||||
public IEnumerator SetupFunction()
|
||||
{
|
||||
string path = $"{Application.persistentDataPath}/users.json";
|
||||
string path = Path.Combine("Assets", "users.json");
|
||||
var oneUser = "{\"currentUserIndex\": 0,\"storedUsers\": [{\"username\": \"TEST\",\"avatar\": {\"instanceID\": 40848},\"playtime\": 0.0,\"courses\": [],\"minigames\": []}]}";
|
||||
|
||||
using (StreamWriter writer = new StreamWriter(path))
|
||||
|
||||
@@ -15,7 +15,7 @@ public class ListCoursesScreenTest
|
||||
[UnitySetUp]
|
||||
public IEnumerator SetupFunction()
|
||||
{
|
||||
string path = $"{Application.persistentDataPath}/users.json";
|
||||
string path = Path.Combine("Assets", "users.json");
|
||||
var oneUser = "{\"currentUserIndex\": 0,\"storedUsers\": [{\"username\": \"TEST\",\"avatar\": {\"instanceID\": 40848},\"playtime\": 0.0,\"courses\": [],\"minigames\": []}]}";
|
||||
|
||||
using (StreamWriter writer = new StreamWriter(path))
|
||||
|
||||
@@ -15,7 +15,7 @@ public class MainMenuScreenTests
|
||||
[UnitySetUp]
|
||||
public IEnumerator SetupFunction()
|
||||
{
|
||||
string path = $"{Application.persistentDataPath}/users.json";
|
||||
string path = Path.Combine("Assets", "users.json");
|
||||
var oneUser = "{\"currentUserIndex\": 0,\"storedUsers\": [{\"username\": \"TEST\",\"avatar\": {\"instanceID\": 40848},\"playtime\": 0.0,\"courses\": [],\"minigames\": []}]}";
|
||||
|
||||
using (StreamWriter writer = new StreamWriter(path))
|
||||
|
||||
@@ -15,7 +15,7 @@ public class MiniGameActivityScreenTests
|
||||
[UnitySetUp]
|
||||
public IEnumerator SetupFunction()
|
||||
{
|
||||
string path = $"{Application.persistentDataPath}/users.json";
|
||||
string path = Path.Combine("Assets", "users.json");
|
||||
var oneUser = "{\"currentUserIndex\": 0,\"storedUsers\": [{\"username\": \"TEST\",\"avatar\": {\"instanceID\": 40848},\"playtime\": 0.0,\"courses\": [],\"minigames\": []}]}";
|
||||
|
||||
using (StreamWriter writer = new StreamWriter(path))
|
||||
|
||||
@@ -16,7 +16,7 @@ public class StartGamesTests
|
||||
[UnityTest]
|
||||
public IEnumerator BootWithUsersTest()
|
||||
{
|
||||
string path = $"{Application.persistentDataPath}/users.json";
|
||||
string path = Path.Combine("Assets", "users.json");
|
||||
var oneUser = "{\"currentUserIndex\": 0,\"storedUsers\": [{\"username\": \"TEST\",\"avatar\": {\"instanceID\": 40848},\"playtime\": 0.0,\"courses\": [],\"minigames\": []}]}";
|
||||
|
||||
using (StreamWriter writer = new StreamWriter(path))
|
||||
@@ -62,7 +62,7 @@ public class StartGamesTests
|
||||
public IEnumerator BootWithoutUsersTest()
|
||||
{
|
||||
// Arrange
|
||||
string path = $"{Application.persistentDataPath}/users.json";
|
||||
string path = Path.Combine("Assets", "users.json");
|
||||
var oneUser = "{}";
|
||||
|
||||
using (StreamWriter writer = new StreamWriter(path))
|
||||
|
||||
@@ -15,7 +15,7 @@ public class UserButtonTests
|
||||
[UnitySetUp]
|
||||
public IEnumerator SetupFunction()
|
||||
{
|
||||
string path = $"{Application.persistentDataPath}/users.json";
|
||||
string path = Path.Combine("Assets", "users.json");
|
||||
var oneUser = "{\"currentUserIndex\": 0,\"storedUsers\": [{\"username\": \"TEST\",\"avatar\": {\"instanceID\": 40848},\"playtime\": 0.0,\"courses\": [],\"minigames\": []}]}";
|
||||
|
||||
using (StreamWriter writer = new StreamWriter(path))
|
||||
|
||||
@@ -183,15 +183,15 @@ MonoBehaviour:
|
||||
m_Calls: []
|
||||
m_text: Lessen
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 3602bedf0ebe5b64596873f09eddf57b, type: 2}
|
||||
m_sharedMaterial: {fileID: -1030930060397404263, guid: 3602bedf0ebe5b64596873f09eddf57b, type: 2}
|
||||
m_fontAsset: {fileID: 11400000, guid: 9f1c2e49d7e036a40a90afa6b1d4f421, type: 2}
|
||||
m_sharedMaterial: {fileID: 6967724915443675501, guid: 9f1c2e49d7e036a40a90afa6b1d4f421, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4288255380
|
||||
m_fontColor: {r: 0.5803922, g: 0.58431375, b: 0.6, a: 1}
|
||||
rgba: 4284235525
|
||||
m_fontColor: {r: 0.019607844, g: 0.24705882, b: 0.36078432, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
@@ -244,7 +244,7 @@ MonoBehaviour:
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_margin: {x: 51.252197, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
@@ -292,7 +292,7 @@ RectTransform:
|
||||
- {fileID: 766563566}
|
||||
- {fileID: 2105029353}
|
||||
m_Father: {fileID: 906197777}
|
||||
m_RootOrder: 2
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
@@ -343,7 +343,7 @@ MonoBehaviour:
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 906197780}
|
||||
- m_Target: {fileID: 0}
|
||||
m_TargetAssemblyTypeName: MainMenuScreen, Assembly-CSharp
|
||||
m_MethodName: GotoMinigames
|
||||
m_Mode: 1
|
||||
@@ -497,7 +497,7 @@ Camera:
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 2
|
||||
m_BackGroundColor: {r: 1, g: 1, b: 1, a: 0}
|
||||
m_BackGroundColor: {r: 1, g: 0, b: 0.3479104, a: 0.6666667}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
@@ -545,6 +545,143 @@ Transform:
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &697512469
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 697512470}
|
||||
- component: {fileID: 697512472}
|
||||
- component: {fileID: 697512471}
|
||||
m_Layer: 5
|
||||
m_Name: Sign
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &697512470
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 697512469}
|
||||
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: 906197777}
|
||||
m_RootOrder: 6
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 219.96002, y: 229.45001}
|
||||
m_SizeDelta: {x: 539.9221, y: 314.80273}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &697512471
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 697512469}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: 'Sign
|
||||
|
||||
'
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 1abd0cd4bed0f2b4082734f91e1d4676, type: 2}
|
||||
m_sharedMaterial: {fileID: -599410478222915337, guid: 1abd0cd4bed0f2b4082734f91e1d4676, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_enableVertexGradient: 1
|
||||
m_colorMode: 1
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 0.9490197, g: 0.49803925, b: 0.04705883, a: 1}
|
||||
topRight: {r: 0.96862745, g: 0.6784314, b: 0.09803922, a: 1}
|
||||
bottomLeft: {r: 0.9490197, g: 0.49803925, b: 0.04705883, a: 1}
|
||||
bottomRight: {r: 0.96862745, g: 0.6784314, b: 0.09803922, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 297.6
|
||||
m_fontSizeBase: 36
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 1
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 415.96
|
||||
m_fontStyle: 2
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!222 &697512472
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 697512469}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &766563565
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -605,15 +742,15 @@ MonoBehaviour:
|
||||
m_Calls: []
|
||||
m_text: Spelletjes
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 3602bedf0ebe5b64596873f09eddf57b, type: 2}
|
||||
m_sharedMaterial: {fileID: -1030930060397404263, guid: 3602bedf0ebe5b64596873f09eddf57b, type: 2}
|
||||
m_fontAsset: {fileID: 11400000, guid: 9f1c2e49d7e036a40a90afa6b1d4f421, type: 2}
|
||||
m_sharedMaterial: {fileID: 6967724915443675501, guid: 9f1c2e49d7e036a40a90afa6b1d4f421, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4288255380
|
||||
m_fontColor: {r: 0.5803922, g: 0.58431375, b: 0.6, a: 1}
|
||||
rgba: 4284235525
|
||||
m_fontColor: {r: 0.019607844, g: 0.24705882, b: 0.36078432, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
@@ -745,7 +882,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2823887524698191630, guid: 53b0d00ac817ebf43b61bea2d160dd66, type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 4
|
||||
value: 3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2823887524698191630, guid: 53b0d00ac817ebf43b61bea2d160dd66, type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
@@ -843,6 +980,22 @@ PrefabInstance:
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5924386446566375588, guid: 53b0d00ac817ebf43b61bea2d160dd66, type: 3}
|
||||
propertyPath: m_Color.a
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5924386446566375588, guid: 53b0d00ac817ebf43b61bea2d160dd66, type: 3}
|
||||
propertyPath: m_Color.b
|
||||
value: 0.7411765
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5924386446566375588, guid: 53b0d00ac817ebf43b61bea2d160dd66, type: 3}
|
||||
propertyPath: m_Color.g
|
||||
value: 0.61960787
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5924386446566375588, guid: 53b0d00ac817ebf43b61bea2d160dd66, type: 3}
|
||||
propertyPath: m_Color.r
|
||||
value: 0.25882354
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 53b0d00ac817ebf43b61bea2d160dd66, type: 3}
|
||||
--- !u!224 &790881345 stripped
|
||||
@@ -850,141 +1003,6 @@ RectTransform:
|
||||
m_CorrespondingSourceObject: {fileID: 2823887524698191630, guid: 53b0d00ac817ebf43b61bea2d160dd66, type: 3}
|
||||
m_PrefabInstance: {fileID: 790881344}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &830464405
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 830464406}
|
||||
- component: {fileID: 830464408}
|
||||
- component: {fileID: 830464407}
|
||||
m_Layer: 5
|
||||
m_Name: Text (TMP)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &830464406
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 830464405}
|
||||
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: 1377361015}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &830464407
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 830464405}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: x
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4281479730
|
||||
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 64
|
||||
m_fontSizeBase: 64
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!222 &830464408
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 830464405}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &906197776
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -996,7 +1014,6 @@ GameObject:
|
||||
- component: {fileID: 906197777}
|
||||
- component: {fileID: 906197779}
|
||||
- component: {fileID: 906197778}
|
||||
- component: {fileID: 906197780}
|
||||
m_Layer: 5
|
||||
m_Name: Panel
|
||||
m_TagString: Untagged
|
||||
@@ -1016,12 +1033,13 @@ RectTransform:
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1733122252}
|
||||
- {fileID: 1637175261}
|
||||
- {fileID: 108186281}
|
||||
- {fileID: 955994878}
|
||||
- {fileID: 790881345}
|
||||
- {fileID: 1377361015}
|
||||
- {fileID: 1339662403}
|
||||
- {fileID: 697512470}
|
||||
m_Father: {fileID: 1768150806}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
@@ -1043,14 +1061,14 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 0.392}
|
||||
m_Color: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
@@ -1068,19 +1086,6 @@ CanvasRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 906197776}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &906197780
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 906197776}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e7cdd358c46e3f94398d91b7118e6d39, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
userList: {fileID: 11400000, guid: 072bec636a40f7e4e93b0ac624a3bda2, type: 2}
|
||||
--- !u!1 &955994877
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1115,11 +1120,11 @@ RectTransform:
|
||||
- {fileID: 1966196597}
|
||||
- {fileID: 991775368}
|
||||
m_Father: {fileID: 906197777}
|
||||
m_RootOrder: 3
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: -330}
|
||||
m_AnchoredPosition: {x: -0.00024414, y: -330}
|
||||
m_SizeDelta: {x: 6434.104, y: 1862.9999}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &955994879
|
||||
@@ -1166,7 +1171,7 @@ MonoBehaviour:
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 906197780}
|
||||
- m_Target: {fileID: 0}
|
||||
m_TargetAssemblyTypeName: MainMenuScreen, Assembly-CSharp
|
||||
m_MethodName: GotoSettings
|
||||
m_Mode: 1
|
||||
@@ -1292,6 +1297,143 @@ CanvasRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 991775367}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &1339662402
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1339662403}
|
||||
- component: {fileID: 1339662405}
|
||||
- component: {fileID: 1339662404}
|
||||
m_Layer: 5
|
||||
m_Name: We
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1339662403
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1339662402}
|
||||
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: 906197777}
|
||||
m_RootOrder: 5
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: -272, y: 229.4483}
|
||||
m_SizeDelta: {x: 524.1782, y: 303.3211}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1339662404
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1339662402}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: 'We
|
||||
|
||||
'
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 1abd0cd4bed0f2b4082734f91e1d4676, type: 2}
|
||||
m_sharedMaterial: {fileID: -599410478222915337, guid: 1abd0cd4bed0f2b4082734f91e1d4676, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4288255380
|
||||
m_fontColor: {r: 0.5803922, g: 0.58431375, b: 0.6, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 299.4
|
||||
m_fontSizeBase: 36
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 1
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 415.96
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!222 &1339662405
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1339662402}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &1369063653
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1398,15 +1540,14 @@ RectTransform:
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 830464406}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 906197777}
|
||||
m_RootOrder: 5
|
||||
m_RootOrder: 4
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 10, y: -10}
|
||||
m_SizeDelta: {x: 64, y: 64}
|
||||
m_SizeDelta: {x: 100.8383, y: 85.0833}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!114 &1377361016
|
||||
MonoBehaviour:
|
||||
@@ -1427,7 +1568,7 @@ MonoBehaviour:
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Transition: 0
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
@@ -1452,7 +1593,7 @@ MonoBehaviour:
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 906197780}
|
||||
- m_Target: {fileID: 0}
|
||||
m_TargetAssemblyTypeName: MainMenuScreen, Assembly-CSharp
|
||||
m_MethodName: QuitApplication
|
||||
m_Mode: 1
|
||||
@@ -1477,16 +1618,16 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 0, b: 0, a: 1}
|
||||
m_Color: {r: 0.96862745, g: 0.6784314, b: 0.09803922, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_Sprite: {fileID: 21300000, guid: d5ad855c08e83c3409a8053c8f886d54, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 1
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
@@ -1536,7 +1677,7 @@ RectTransform:
|
||||
- {fileID: 37409564}
|
||||
- {fileID: 1369063654}
|
||||
m_Father: {fileID: 906197777}
|
||||
m_RootOrder: 1
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
@@ -1587,7 +1728,7 @@ MonoBehaviour:
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 906197780}
|
||||
- m_Target: {fileID: 0}
|
||||
m_TargetAssemblyTypeName: MainMenuScreen, Assembly-CSharp
|
||||
m_MethodName: GotoCourses
|
||||
m_Mode: 1
|
||||
@@ -1637,7 +1778,7 @@ CanvasRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1637175260}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &1733122251
|
||||
--- !u!1 &1673439370
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@@ -1645,74 +1786,43 @@ GameObject:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1733122252}
|
||||
- component: {fileID: 1733122254}
|
||||
- component: {fileID: 1733122253}
|
||||
- component: {fileID: 1673439372}
|
||||
- component: {fileID: 1673439371}
|
||||
m_Layer: 0
|
||||
m_Name: Logo
|
||||
m_Name: MainMenuController
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1733122252
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1733122251}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: -3.073702}
|
||||
m_LocalScale: {x: 10, y: 8, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 906197777}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 220}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1733122253
|
||||
--- !u!114 &1673439371
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1733122251}
|
||||
m_GameObject: {fileID: 1673439370}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Script: {fileID: 11500000, guid: e7cdd358c46e3f94398d91b7118e6d39, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: f4df4aae6f11d0c4487c9616f770b019, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!222 &1733122254
|
||||
CanvasRenderer:
|
||||
userList: {fileID: 11400000, guid: 072bec636a40f7e4e93b0ac624a3bda2, type: 2}
|
||||
--- !u!4 &1673439372
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1733122251}
|
||||
m_CullTransparentMesh: 1
|
||||
m_GameObject: {fileID: 1673439370}
|
||||
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_RootOrder: 3
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1768150802
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1849,8 +1959,8 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 700, y: 0}
|
||||
m_SizeDelta: {x: -1800, y: -640}
|
||||
m_AnchoredPosition: {x: 1067, y: 138}
|
||||
m_SizeDelta: {x: -949.823, y: -706.494}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1966196598
|
||||
MonoBehaviour:
|
||||
@@ -1874,15 +1984,15 @@ MonoBehaviour:
|
||||
m_Calls: []
|
||||
m_text: Instellingen
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 3602bedf0ebe5b64596873f09eddf57b, type: 2}
|
||||
m_sharedMaterial: {fileID: -1030930060397404263, guid: 3602bedf0ebe5b64596873f09eddf57b, type: 2}
|
||||
m_fontAsset: {fileID: 11400000, guid: 9f1c2e49d7e036a40a90afa6b1d4f421, type: 2}
|
||||
m_sharedMaterial: {fileID: 6967724915443675501, guid: 9f1c2e49d7e036a40a90afa6b1d4f421, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4288255380
|
||||
m_fontColor: {r: 0.5803922, g: 0.58431375, b: 0.6, a: 1}
|
||||
rgba: 4284235525
|
||||
m_fontColor: {r: 0.019607844, g: 0.24705882, b: 0.36078432, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
|
||||
@@ -15,7 +15,6 @@ MonoBehaviour:
|
||||
title: Groenten en Fruit
|
||||
description: Van kers tot pompoen
|
||||
index: 3
|
||||
model: {fileID: 0}
|
||||
learnables:
|
||||
- name: Aardappel
|
||||
image: {fileID: 21300000, guid: 2610cdbc24a125f43ada7fed67d8f51b, type: 3}
|
||||
@@ -80,6 +79,6 @@ MonoBehaviour:
|
||||
- name: Tomaat
|
||||
image: {fileID: 21300000, guid: e16943962d961d948a0a6dc73ebf2b0b, type: 3}
|
||||
clip: {fileID: 32900000, guid: 7ca3dbd42b3033341b3c5c51059643f6, type: 3}
|
||||
- name: Wortel
|
||||
- name: Wrotel
|
||||
image: {fileID: 21300000, guid: 8962e03659a079546810c3ad9c8a211c, type: 3}
|
||||
clip: {fileID: 32900000, guid: ef9554901c0c6784e9102d5c1fd28a9a, type: 3}
|
||||
|
||||
@@ -66,7 +66,6 @@ public class CourseActivityScreen : MonoBehaviour
|
||||
//slider.value = progressValue;
|
||||
|
||||
// Set progress
|
||||
userList.Load();
|
||||
progress = userList.GetCurrentUser().GetCourseProgress(course.index);
|
||||
if (progress != null)
|
||||
progressBar.value = progress.Get<float>("courseProgress");
|
||||
|
||||
@@ -42,7 +42,6 @@ public class CourseMenuScreen : MonoBehaviour
|
||||
/// </summary>
|
||||
void Start()
|
||||
{
|
||||
userList.Load();
|
||||
User user = userList.GetCurrentUser();
|
||||
|
||||
// Recent courses
|
||||
|
||||
@@ -30,7 +30,6 @@ public class ListCoursesScreen : MonoBehaviour
|
||||
/// </summary>
|
||||
void Start()
|
||||
{
|
||||
userList.Load();
|
||||
User user = userList.GetCurrentUser();
|
||||
|
||||
foreach (Course course in courseList.courses)
|
||||
|
||||
@@ -17,7 +17,6 @@ public class MainMenuScreen : MonoBehaviour
|
||||
/// </summary>
|
||||
void Awake()
|
||||
{
|
||||
userList.Load();
|
||||
if (!File.Exists(UserList.PATH) || userList.GetUsers().Count <= 0)
|
||||
{
|
||||
SystemController.GetInstance().LoadNextScene("Accounts/Scenes/UserCreationScreen");
|
||||
|
||||
@@ -65,7 +65,6 @@ public class MinigameActivityScreen : MonoBehaviour
|
||||
/// </summary>
|
||||
void Start()
|
||||
{
|
||||
userList.Load();
|
||||
GenerateContent();
|
||||
GenerateHighScores();
|
||||
}
|
||||
|
||||
@@ -32,7 +32,6 @@ public class UserButton : MonoBehaviour
|
||||
/// </summary>
|
||||
void Start()
|
||||
{
|
||||
userList.Load();
|
||||
User user = userList.GetCurrentUser();
|
||||
avatar.sprite = user.avatar;
|
||||
username.text = user.username;
|
||||
|
||||
25
Assets/Common/Tests/BasicTest.cs
Normal file
25
Assets/Common/Tests/BasicTest.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using NUnit.Framework;
|
||||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
|
||||
public class BasicTests
|
||||
{
|
||||
// A Test behaves as an ordinary method
|
||||
[Test]
|
||||
public void BasicTestsSimplePasses()
|
||||
{
|
||||
// Use the Assert class to test conditions
|
||||
}
|
||||
|
||||
// A UnityTest behaves like a coroutine in Play Mode. In Edit Mode you can use
|
||||
// `yield return null;` to skip a frame.
|
||||
[UnityTest]
|
||||
public IEnumerator BasicTestsWithEnumeratorPasses()
|
||||
{
|
||||
// Use the Assert class to test conditions.
|
||||
// Use yield to skip a frame.
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3d1fb3d0097b3794eb1cbbe7a4577e1d
|
||||
guid: 298e34c71d9e68260a1e06d1d4e94be1
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@@ -4,8 +4,7 @@
|
||||
"references": [
|
||||
"UnityEngine.TestRunner",
|
||||
"UnityEditor.TestRunner",
|
||||
"CommonScripts",
|
||||
"InterfacesScripts"
|
||||
"CommonScripts"
|
||||
],
|
||||
"includePlatforms": [
|
||||
"Editor"
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
using NUnit.Framework;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// Test the CourseList class
|
||||
/// </summary>
|
||||
[TestFixture]
|
||||
public class CourseListTest
|
||||
{
|
||||
private CourseList courseList;
|
||||
|
||||
/// <summary>
|
||||
/// Setup a CourseList with all possible courses in the enum
|
||||
/// </summary>
|
||||
[SetUp]
|
||||
public void Setup_Minigame()
|
||||
{
|
||||
courseList = ScriptableObject.CreateInstance<CourseList>();
|
||||
|
||||
// Add a course for each index in the enum
|
||||
|
||||
// Dumb way to access each index in the enum, couldn't find a different way to do it though
|
||||
foreach (var field in typeof(CourseIndex).GetFields())
|
||||
{
|
||||
if (field.IsLiteral)
|
||||
{
|
||||
CourseIndex value = (CourseIndex)field.GetValue(null);
|
||||
string name = field.Name;
|
||||
Course course = ScriptableObject.CreateInstance<Course>();
|
||||
// This is all we will need to distinguish
|
||||
course.index = value;
|
||||
course.title = name;
|
||||
|
||||
// Insert in front to guarantee that courseIndex will not line up with listIndex
|
||||
courseList.courses.Insert(0, course);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check if all courses can be correctly fetched via GetCourseByIndex
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void TestGetMinigameByIndex()
|
||||
{
|
||||
foreach (var field in typeof(CourseIndex).GetFields())
|
||||
{
|
||||
if (field.IsLiteral)
|
||||
{
|
||||
CourseIndex value = (CourseIndex)field.GetValue(null);
|
||||
string name = field.Name;
|
||||
Course m = courseList.GetCourseByIndex(value);
|
||||
|
||||
Assert.AreEqual(m.title, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check if all courses can be correctly set as current via SetCurrentCourse
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void TestSetCurrentMinigame()
|
||||
{
|
||||
foreach (var field in typeof(CourseIndex).GetFields())
|
||||
{
|
||||
if (field.IsLiteral)
|
||||
{
|
||||
CourseIndex value = (CourseIndex)field.GetValue(null);
|
||||
string name = field.Name;
|
||||
courseList.SetCurrentCourse(value);
|
||||
|
||||
// Fetch the current course and check if its name is the same as the one we made into the current one
|
||||
Course m = courseList.courses[courseList.currentCourseIndex];
|
||||
|
||||
Assert.AreEqual(m.title, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1c340877c5585b545805be35e071e2fd
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,80 +0,0 @@
|
||||
using NUnit.Framework;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// Test the MinigameList class
|
||||
/// </summary>
|
||||
[TestFixture]
|
||||
public class MinigameListTest
|
||||
{
|
||||
private MinigameList minigameList;
|
||||
|
||||
/// <summary>
|
||||
/// Setup a minigameList with all possible minigames in the enum
|
||||
/// </summary>
|
||||
[SetUp]
|
||||
public void Setup_Minigame()
|
||||
{
|
||||
minigameList = ScriptableObject.CreateInstance<MinigameList>();
|
||||
|
||||
// Add a minigame for each index in the enum
|
||||
|
||||
// Dumb way to access each index in the enum, couldn't find a different way to do it though
|
||||
foreach (var field in typeof(MinigameIndex).GetFields())
|
||||
{
|
||||
if (field.IsLiteral)
|
||||
{
|
||||
MinigameIndex value = (MinigameIndex)field.GetValue(null);
|
||||
string name = field.Name;
|
||||
Minigame m = ScriptableObject.CreateInstance<Minigame>();
|
||||
// This is all we will need to distinguish
|
||||
m.index = value;
|
||||
m.title = name;
|
||||
|
||||
// Insert in front to guarantee that MinigameIndex will not line up with listIndex
|
||||
minigameList.minigames.Insert(0, m);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check if all minigames can be correctly fetched via GetMinigameByIndex
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void TestGetMinigameByIndex()
|
||||
{
|
||||
foreach (var field in typeof(MinigameIndex).GetFields())
|
||||
{
|
||||
if (field.IsLiteral)
|
||||
{
|
||||
MinigameIndex value = (MinigameIndex)field.GetValue(null);
|
||||
string name = field.Name;
|
||||
Minigame m = minigameList.GetMinigameByIndex(value);
|
||||
|
||||
Assert.AreEqual(m.title, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check if all minigames can be correctly set as current via SetCurrentMinigame
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void TestSetCurrentMinigame()
|
||||
{
|
||||
foreach (var field in typeof(MinigameIndex).GetFields())
|
||||
{
|
||||
if (field.IsLiteral)
|
||||
{
|
||||
MinigameIndex value = (MinigameIndex)field.GetValue(null);
|
||||
string name = field.Name;
|
||||
minigameList.SetCurrentMinigame(value);
|
||||
|
||||
// Fetch the current minigame and check if its name is the same as the one we made into the current one
|
||||
Minigame m = minigameList.minigames[minigameList.currentMinigameIndex];
|
||||
|
||||
Assert.AreEqual(m.title, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
using NUnit.Framework;
|
||||
using UnityEngine;
|
||||
/// <summary>
|
||||
/// Test the ThemeList class
|
||||
/// </summary>
|
||||
[TestFixture]
|
||||
public class ThemeListTest
|
||||
{
|
||||
private ThemeList themeList;
|
||||
|
||||
/// <summary>
|
||||
/// Setup a ThemeList with all possible themes in the enum
|
||||
/// </summary>
|
||||
[SetUp]
|
||||
public void Setup_Minigame()
|
||||
{
|
||||
themeList = ScriptableObject.CreateInstance<ThemeList>();
|
||||
|
||||
// Add a theme for each index in the enum
|
||||
|
||||
// Dumb way to access each index in the enum, couldn't find a different way to do it though
|
||||
foreach (var field in typeof(ThemeIndex).GetFields())
|
||||
{
|
||||
if (field.IsLiteral)
|
||||
{
|
||||
ThemeIndex value = (ThemeIndex)field.GetValue(null);
|
||||
string name = field.Name;
|
||||
Theme theme = ScriptableObject.CreateInstance<Theme>();
|
||||
// This is all we will need to distinguish
|
||||
theme.index = value;
|
||||
theme.title = name;
|
||||
|
||||
// Insert in front to guarantee that themeIndex will not line up with listIndex
|
||||
themeList.themes.Insert(0, theme);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check if all themes can be correctly set as current via SetCurrentTheme
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void TestSetCurrentMinigame()
|
||||
{
|
||||
foreach (var field in typeof(ThemeIndex).GetFields())
|
||||
{
|
||||
if (field.IsLiteral)
|
||||
{
|
||||
ThemeIndex value = (ThemeIndex)field.GetValue(null);
|
||||
string name = field.Name;
|
||||
themeList.SetCurrentTheme(value);
|
||||
|
||||
// Fetch the current theme and check if its name is the same as the one we made into the current one
|
||||
Theme m = themeList.themes[themeList.currentThemeIndex];
|
||||
|
||||
Assert.AreEqual(m.title, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
using NUnit.Framework;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
/// <summary>
|
||||
/// Test the Theme class
|
||||
/// </summary>
|
||||
[TestFixture]
|
||||
public class ThemeTest
|
||||
{
|
||||
private Theme theme;
|
||||
private List<string> names = new List<string>() { "appel", "peer", "banaan" };
|
||||
/// <summary>
|
||||
/// Setup a theme with some learnables in it
|
||||
/// </summary>
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
theme = ScriptableObject.CreateInstance<Theme>();
|
||||
foreach (string name in names)
|
||||
{
|
||||
Learnable learnable = new Learnable();
|
||||
learnable.name = name;
|
||||
theme.learnables.Add(learnable);
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Test if all the learnables are stored in the theme
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void TestThemeLearnables()
|
||||
{
|
||||
// Check if each of the learnables is kept
|
||||
foreach (Learnable learnable in theme.learnables)
|
||||
{
|
||||
names.Remove(learnable.name);
|
||||
}
|
||||
// Assert that all items have been checked
|
||||
Assert.IsTrue(names.Count == 0);
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4a5f73ff286a8624eb185a9d7a08cd1a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -501,8 +501,6 @@ MonoBehaviour:
|
||||
userList: {fileID: 11400000, guid: 072bec636a40f7e4e93b0ac624a3bda2, type: 2}
|
||||
courselist: {fileID: 11400000, guid: a7ab583094b7897468bbca9243717608, type: 2}
|
||||
ResultPanel: {fileID: 1383144366}
|
||||
ResultsTitle: {fileID: 822960079}
|
||||
ResultsDecription: {fileID: 100123246}
|
||||
CoursesButton: {fileID: 839294691}
|
||||
timeSpent: {fileID: 77614869}
|
||||
feedback: {fileID: 1714882683}
|
||||
@@ -1305,7 +1303,6 @@ MonoBehaviour:
|
||||
modelInfoFile: {fileID: 4900000, guid: fb8b51022bdcd654a9f29c054832a1b5, type: 3}
|
||||
configAsset: {fileID: 4900000, guid: 6288c43cdca97374782dac1ea87aa029, type: 3}
|
||||
screen: {fileID: 378145456}
|
||||
screen2: {fileID: 0}
|
||||
--- !u!4 &883853269
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@@ -87,16 +87,6 @@ public class TemplateCourse : MonoBehaviour
|
||||
/// </summary>
|
||||
public GameObject ResultPanel;
|
||||
|
||||
/// <summary>
|
||||
/// Reference to the title on the results panel
|
||||
/// </summary>
|
||||
public TMP_Text ResultsTitle;
|
||||
|
||||
/// <summary>
|
||||
/// Reference to the description on the results panel
|
||||
/// </summary>
|
||||
public TMP_Text ResultsDecription;
|
||||
|
||||
/// <summary>
|
||||
/// Button to go back to courses list
|
||||
/// </summary>
|
||||
@@ -138,7 +128,6 @@ public class TemplateCourse : MonoBehaviour
|
||||
// ^^^ TEMPORARY STUFF ^^^
|
||||
|
||||
// Create entry in current user for keeping track of progress
|
||||
userList.Load();
|
||||
user = userList.GetCurrentUser();
|
||||
progress = user.GetCourseProgress(course.index);
|
||||
if (progress == null)
|
||||
@@ -270,12 +259,6 @@ public class TemplateCourse : MonoBehaviour
|
||||
// Show the "finished" screen
|
||||
ResultPanel.SetActive(true);
|
||||
|
||||
// Set the correct title
|
||||
ResultsTitle.text = course.title + " voltooid!";
|
||||
|
||||
// Set the correct description
|
||||
ResultsDecription.text = "Goed gedaan! Je kan nu spelletjes spelen met " + course.title + " om verder te oefenen!";
|
||||
|
||||
// Set the total time spent UI
|
||||
TimeSpan time = DateTime.Now - startMoment;
|
||||
timeSpent.text = time.ToString(@"hh\:mm\:ss");
|
||||
|
||||
@@ -38,7 +38,7 @@ RenderSettings:
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_IndirectSpecularColor: {r: 0.44657826, g: 0.49641263, b: 0.57481676, a: 1}
|
||||
m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
@@ -3545,7 +3545,6 @@ MonoBehaviour:
|
||||
wordsText: {fileID: 1704021883}
|
||||
scoreText: {fileID: 90551462}
|
||||
minigame: {fileID: 11400000, guid: 165c1d9867275924d9720d409e935f95, type: 2}
|
||||
minigamelist: {fileID: 11400000, guid: 51453f9b41bc72f468ba3e67ab622f8f, type: 2}
|
||||
userList: {fileID: 11400000, guid: 072bec636a40f7e4e93b0ac624a3bda2, type: 2}
|
||||
Scoreboard: {fileID: 1007532375}
|
||||
EntriesGrid: {fileID: 1391137944}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using TMPro;
|
||||
|
||||
public class HangmanGameController : MonoBehaviour
|
||||
{
|
||||
@@ -159,12 +160,6 @@ public class HangmanGameController : MonoBehaviour
|
||||
/// </summary>
|
||||
public Minigame minigame;
|
||||
|
||||
/// <summary>
|
||||
/// We keep the minigamelist as well so that the minigame-index doesn't get reset
|
||||
/// DO NOT REMOVE
|
||||
/// </summary>
|
||||
public MinigameList minigamelist;
|
||||
|
||||
/// <summary>
|
||||
/// Reference to the user list to access the current user
|
||||
/// </summary>
|
||||
@@ -204,7 +199,7 @@ public class HangmanGameController : MonoBehaviour
|
||||
/// Accuracy feeback object
|
||||
/// </summary>
|
||||
public Feedback feedback;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// The button to go into the game
|
||||
/// </summary>
|
||||
@@ -228,7 +223,6 @@ public class HangmanGameController : MonoBehaviour
|
||||
playerPanel.SetActive(true);
|
||||
|
||||
// Create entry in current user for keeping track of progress
|
||||
userList.Load();
|
||||
user = userList.GetCurrentUser();
|
||||
Progress progress = user.GetMinigameProgress(minigame.index);
|
||||
if (progress == null)
|
||||
@@ -337,7 +331,7 @@ public class HangmanGameController : MonoBehaviour
|
||||
public void TwoPlayer()
|
||||
{
|
||||
if (currentWord.Length >= 2)
|
||||
{
|
||||
{
|
||||
StartGame();
|
||||
}
|
||||
}
|
||||
@@ -347,8 +341,8 @@ public class HangmanGameController : MonoBehaviour
|
||||
/// </summary>
|
||||
public void Update()
|
||||
{
|
||||
if (mode == 1)
|
||||
{
|
||||
if(mode == 1)
|
||||
{
|
||||
if (currentsign != "")
|
||||
{
|
||||
char letter = currentsign.ToLower()[0];
|
||||
@@ -365,7 +359,7 @@ public class HangmanGameController : MonoBehaviour
|
||||
if (Input.GetKey(KeyCode.Backspace))
|
||||
{
|
||||
// Remove the last letter from the currentword
|
||||
if (currentWord.Length > 0)
|
||||
if(currentWord.Length > 0)
|
||||
{
|
||||
currentWord = currentWord.Substring(0, currentWord.Length - 1);
|
||||
inputTextField.text = currentWord.ToString();
|
||||
@@ -378,7 +372,7 @@ public class HangmanGameController : MonoBehaviour
|
||||
inputTextField.text = currentWord.ToString();
|
||||
}
|
||||
}
|
||||
gottogamebutton.SetActive(currentWord.Length > 2);
|
||||
gottogamebutton.SetActive(currentWord.Length >2);
|
||||
}
|
||||
|
||||
if (mode == 2)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,18 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: cd3d1c3a6cf7ef07abb343f8862a7435, type: 3}
|
||||
m_Name: Graceland
|
||||
m_EditorClassIdentifier:
|
||||
firstSymbolTime: 0.5
|
||||
spawnPeriod: 2
|
||||
duration: 127
|
||||
song: {fileID: 8300000, guid: e01ded5e221494bdbaab8674c0354f64, type: 3}
|
||||
@@ -1,18 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: ceeae47a3efc2206299ddf1cc31043c2, type: 3}
|
||||
m_Name: SongList
|
||||
m_EditorClassIdentifier:
|
||||
currentSongIndex: 0
|
||||
songs:
|
||||
- {fileID: 11400000, guid: 0f5b5e156c628bf189df5723ad2aab96, type: 2}
|
||||
- {fileID: 11400000, guid: 7a55c88547b9345fe87aecd1398550c9, type: 2}
|
||||
@@ -1,18 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: cd3d1c3a6cf7ef07abb343f8862a7435, type: 3}
|
||||
m_Name: SunnySafari
|
||||
m_EditorClassIdentifier:
|
||||
firstSymbolTime: 1.3
|
||||
spawnPeriod: 1.99
|
||||
duration: 164
|
||||
song: {fileID: 8300000, guid: d7ca1b558b7b064cdb6f9d6c951b1522, type: 3}
|
||||
@@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
@@ -41,23 +40,6 @@ public class JustSignController : MonoBehaviour
|
||||
/// </summary>
|
||||
public Minigame minigame;
|
||||
|
||||
/// <summary>
|
||||
/// We keep the minigamelist as well so that the minigame-index doesn't get reset
|
||||
/// DO NOT REMOVE
|
||||
/// </summary>
|
||||
public MinigameList minigamelist;
|
||||
|
||||
/// </summary>
|
||||
/// Reference to the list of available songs
|
||||
/// </summary>
|
||||
public SongList songList;
|
||||
|
||||
/// <summary>
|
||||
/// Reference to the currently used song
|
||||
/// </summary>
|
||||
private Song currentSong;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// The zone that the player should be hitting with his or her inputs
|
||||
/// </summary>
|
||||
@@ -73,6 +55,11 @@ public class JustSignController : MonoBehaviour
|
||||
/// </summary>
|
||||
public Transform symbolContainer;
|
||||
|
||||
/// <summary>
|
||||
/// All of the available themes
|
||||
/// </summary>
|
||||
private ThemeList themeList;
|
||||
|
||||
/// <summary>
|
||||
/// The theme we are currently using
|
||||
/// </summary>
|
||||
@@ -93,11 +80,6 @@ public class JustSignController : MonoBehaviour
|
||||
/// </summary>
|
||||
private int score;
|
||||
|
||||
/// <summary>
|
||||
/// Have the symbols started spawning or not
|
||||
/// </summary>
|
||||
private bool gameIsActive = false;
|
||||
|
||||
/// <summary>
|
||||
/// Width and height of the symbols
|
||||
/// </summary>
|
||||
@@ -164,150 +146,22 @@ public class JustSignController : MonoBehaviour
|
||||
private float lastSpawn;
|
||||
|
||||
/// <summary>
|
||||
/// Time at which the game started, needed to know when to stop
|
||||
/// Determines every how many seconds a symbol should spawn (will become music-dependent later on)
|
||||
/// </summary>
|
||||
private float beginTime;
|
||||
|
||||
/// <summary>
|
||||
/// Time at which the last symbol should spawn
|
||||
/// </summary>
|
||||
private float lastSymbolTime;
|
||||
|
||||
/// <summary>
|
||||
/// Counter that keeps track of how many signs get you score "perfect"
|
||||
/// </summary>
|
||||
private int perfectSigns;
|
||||
|
||||
/// <summary>
|
||||
/// Counter that keeps track of how many signs get you score "good"
|
||||
/// </summary>
|
||||
private int goodSigns;
|
||||
|
||||
/// <summary>
|
||||
/// Counter that keeps track of how many signs get you score "meh"
|
||||
/// </summary>
|
||||
private int mehSigns;
|
||||
|
||||
/// <summary>
|
||||
/// Counter that keeps track of how many signs get you score "perfect"
|
||||
/// </summary>
|
||||
private int terribleSigns;
|
||||
|
||||
/// <summary>
|
||||
/// Counter that keeps track of how many signs done incorrectly
|
||||
/// </summary>
|
||||
private int incorrectSigns;
|
||||
|
||||
/// <summary>
|
||||
/// Reference to the scoreboard entries container
|
||||
/// </summary>
|
||||
public Transform scoreboardEntriesContainer;
|
||||
|
||||
/// <summary>
|
||||
/// The GameObjects representing the letters
|
||||
/// </summary>
|
||||
private List<GameObject> scoreboardEntries = new List<GameObject>();
|
||||
|
||||
/// <summary>
|
||||
/// Reference to the ScoreboardEntry prefab
|
||||
/// </summary>
|
||||
public GameObject scoreboardEntry;
|
||||
|
||||
/// <summary>
|
||||
/// Reference to the user list to access the current user
|
||||
/// </summary>
|
||||
public UserList userList;
|
||||
|
||||
/// <summary>
|
||||
/// Reference to the current user
|
||||
/// </summary>
|
||||
private User user;
|
||||
|
||||
/// <summary>
|
||||
/// LPM
|
||||
/// </summary>
|
||||
public TMP_Text lpmText;
|
||||
|
||||
/// <summary>
|
||||
/// Perfect Signs Score
|
||||
/// </summary>
|
||||
public TMP_Text perfectSignsText;
|
||||
|
||||
/// <summary>
|
||||
/// Good Signs Score
|
||||
/// </summary>
|
||||
public TMP_Text goodSignsText;
|
||||
|
||||
/// <summary>
|
||||
/// Meh Signs Score
|
||||
/// </summary>
|
||||
public TMP_Text mehSignsText;
|
||||
|
||||
/// <summary>
|
||||
/// Perfect Signs Score
|
||||
/// </summary>
|
||||
public TMP_Text terribleSignsText;
|
||||
|
||||
/// <summary>
|
||||
/// Signs that were not found
|
||||
/// </summary>
|
||||
public TMP_Text notFoundSignsText;
|
||||
|
||||
/// <summary>
|
||||
/// Score
|
||||
/// </summary>
|
||||
public TMP_Text scoreText;
|
||||
|
||||
/// <summary>
|
||||
/// Reference to the gameEnded panel, so we can update its display
|
||||
/// </summary>
|
||||
public GameObject gameEndedPanel;
|
||||
private float spawnPeriod = 3.0f;
|
||||
|
||||
/// <summary>
|
||||
/// Start is called before the first frame update
|
||||
/// </summary>
|
||||
public void Start()
|
||||
{
|
||||
perfectSigns = 0;
|
||||
goodSigns = 0;
|
||||
mehSigns = 0;
|
||||
terribleSigns = 0;
|
||||
incorrectSigns = 0;
|
||||
score = 0;
|
||||
gameEndedPanel.SetActive(false);
|
||||
// Create entry in current user for keeping track of progress
|
||||
userList.Load();
|
||||
user = userList.GetCurrentUser();
|
||||
Progress progress = user.GetMinigameProgress(minigame.index);
|
||||
if (progress == null)
|
||||
{
|
||||
progress = new Progress();
|
||||
progress.AddOrUpdate<MinigameIndex>("minigameIndex", minigame.index);
|
||||
progress.AddOrUpdate<List<Score>>("highestScores", new List<Score>());
|
||||
progress.AddOrUpdate<List<Score>>("latestScores", new List<Score>());
|
||||
user.minigames.Add(progress);
|
||||
}
|
||||
userList.Save();
|
||||
|
||||
void Start()
|
||||
{
|
||||
scoreDisplay.text = "Score: " + score.ToString();
|
||||
currentTheme = minigame.themeList.themes[minigame.themeList.currentThemeIndex];
|
||||
words.AddRange(currentTheme.learnables);
|
||||
currentSong = songList.songs[songList.currentSongIndex];
|
||||
AudioSource.PlayClipAtPoint(currentSong.song, Vector3.zero, 1.0f);
|
||||
beginTime = Time.time;
|
||||
lastSymbolTime = beginTime + currentSong.duration - 1920.0f / moveSpeed;
|
||||
|
||||
StartCoroutine(WaitThenStart(currentSong.firstSymbolTime));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wait for a given amount of time (specified in song) before spawning symbols
|
||||
/// </summary>
|
||||
IEnumerator WaitThenStart(float nrOfSeconds)
|
||||
{
|
||||
//yield on a new YieldInstruction that waits for nrOfSeconds seconds
|
||||
yield return new WaitForSeconds(nrOfSeconds);
|
||||
gameIsActive = true;
|
||||
//currentTheme = FindThemeByName(PlayerPrefs.GetString("themeName"));
|
||||
//words = currentTheme.words;
|
||||
lastSpawn = Time.time;
|
||||
SpawnNewSymbol();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -315,86 +169,56 @@ public class JustSignController : MonoBehaviour
|
||||
/// </summary>
|
||||
void Update()
|
||||
{
|
||||
if (gameIsActive) {
|
||||
int matchedSymbolIndex = -1;
|
||||
for (int i = 0; i < activeWords.Count; i++) {
|
||||
if (activeWords[i].ToLower() == answerField.text.ToLower()) {
|
||||
matchedSymbolIndex = i;
|
||||
}
|
||||
int matchedSymbolIndex = -1;
|
||||
for (int i = 0; i < activeWords.Count; i++) {
|
||||
if (activeWords[i].ToLower() == answerField.text.ToLower()) {
|
||||
matchedSymbolIndex = i;
|
||||
}
|
||||
|
||||
// Destroy the oldest symbol if the current input matches it
|
||||
if (matchedSymbolIndex >= 0) {
|
||||
int difference = Math.Abs((int) (activeSymbols[matchedSymbolIndex].transform.position.x - hitZone.transform.position.x));
|
||||
if (difference < perfectBoundary) {
|
||||
feedBack.text = "Perfect!";
|
||||
perfectSigns++;
|
||||
score += perfectScore;
|
||||
} else if (difference < goodBoundary) {
|
||||
feedBack.text = "Good!";
|
||||
goodSigns++;
|
||||
score += goodScore;
|
||||
} else if (difference < mehBoundary) {
|
||||
feedBack.text = "Meh...";
|
||||
mehSigns++;
|
||||
score += mehScore;
|
||||
} else {
|
||||
feedBack.text = "Terrible!";
|
||||
terribleSigns++;
|
||||
score += terribleScore;
|
||||
}
|
||||
|
||||
DestroySymbolAt(matchedSymbolIndex);
|
||||
answerField.text = "";
|
||||
}
|
||||
|
||||
// Destroy the oldest symbol if it leaves the screen
|
||||
if (activeSymbols.Count > 0) {
|
||||
if (activeSymbols[0].GetComponent<RectTransform>().localPosition.x > -trackX) {
|
||||
DestroySymbolAt(0);
|
||||
incorrectSigns++;
|
||||
feedBack.text = "Te laat!";
|
||||
score += offscreenScore;
|
||||
}
|
||||
}
|
||||
|
||||
// Spawn new symbol every spawn period
|
||||
float currentTime = Time.time;
|
||||
if (currentTime - lastSpawn > currentSong.spawnPeriod && lastSymbolTime > currentTime) {
|
||||
lastSpawn = currentTime;
|
||||
SpawnNewSymbol();
|
||||
}
|
||||
|
||||
// Check if the song has ended and activate scorescreen if it has
|
||||
if (currentTime - beginTime > currentSong.duration) {
|
||||
ActivateEnd();
|
||||
}
|
||||
|
||||
// Move all active symbols to the right
|
||||
foreach (GameObject symbol in activeSymbols) {
|
||||
RectTransform rectTransform = symbol.GetComponent<RectTransform>();
|
||||
rectTransform.localPosition = new Vector3(rectTransform.localPosition.x + Time.deltaTime * moveSpeed, trackY, 0);
|
||||
}
|
||||
|
||||
scoreDisplay.text = "Score: " + score.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Display Scoreboard + Metrics
|
||||
/// </summary>
|
||||
public void ActivateEnd()
|
||||
{
|
||||
gameIsActive = false;
|
||||
while (activeSymbols.Count > 0)
|
||||
{
|
||||
DestroySymbolAt(0);
|
||||
// Destroy the oldest symbol if the current input matches it
|
||||
if (matchedSymbolIndex >= 0) {
|
||||
int difference = Math.Abs((int) (activeSymbols[matchedSymbolIndex].transform.position.x - hitZone.transform.position.x));
|
||||
if (difference < perfectBoundary) {
|
||||
feedBack.text = "Perfect!";
|
||||
score += perfectScore;
|
||||
} else if (difference < goodBoundary) {
|
||||
feedBack.text = "Good!";
|
||||
score += goodScore;
|
||||
} else if (difference < mehBoundary) {
|
||||
feedBack.text = "Meh...";
|
||||
score += mehScore;
|
||||
} else {
|
||||
feedBack.text = "Terrible!";
|
||||
score += terribleScore;
|
||||
}
|
||||
|
||||
DestroySymbolAt(matchedSymbolIndex);
|
||||
answerField.text = "";
|
||||
}
|
||||
// TODO: Scoreboard
|
||||
SaveScores();
|
||||
SetScoreMetrics();
|
||||
SetScoreBoard();
|
||||
gameEndedPanel.SetActive(true);
|
||||
|
||||
// Destroy the oldest symbol if it leaves the screen
|
||||
if (activeSymbols.Count > 0) {
|
||||
if (activeSymbols[0].GetComponent<RectTransform>().localPosition.x > -trackX) {
|
||||
DestroySymbolAt(0);
|
||||
score += offscreenScore;
|
||||
}
|
||||
}
|
||||
|
||||
// Spawn new symbol every spawn period
|
||||
float currentTime = Time.time;
|
||||
if (currentTime - lastSpawn > spawnPeriod) {
|
||||
lastSpawn = currentTime;
|
||||
SpawnNewSymbol();
|
||||
}
|
||||
|
||||
// Move all active symbols to the right
|
||||
foreach (GameObject symbol in activeSymbols) {
|
||||
RectTransform rectTransform = symbol.GetComponent<RectTransform>();
|
||||
rectTransform.localPosition = new Vector3(rectTransform.localPosition.x + Time.deltaTime * moveSpeed, trackY, 0);
|
||||
}
|
||||
|
||||
scoreDisplay.text = "Score: " + score.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -440,169 +264,4 @@ public class JustSignController : MonoBehaviour
|
||||
activeWords.Add(nextSymbol);
|
||||
activeSymbols.Add(newSymbolObject);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update and save the scores
|
||||
/// </summary>
|
||||
public void SaveScores()
|
||||
{
|
||||
// Calculate new score
|
||||
int newScore = this.score;
|
||||
|
||||
// Save the score as a tuple: < int score, string time ago>
|
||||
Score score = new Score();
|
||||
score.scoreValue = newScore;
|
||||
score.time = DateTime.Now.ToString();
|
||||
|
||||
// Save the new score
|
||||
user = userList.GetCurrentUser();
|
||||
Progress progress = user.GetMinigameProgress(minigame.index);
|
||||
|
||||
// Get the current list of scores
|
||||
List<Score> latestScores = progress.Get<List<Score>>("latestScores");
|
||||
List<Score> highestScores = progress.Get<List<Score>>("highestScores");
|
||||
|
||||
// Add the new score
|
||||
latestScores.Add(score);
|
||||
highestScores.Add(score);
|
||||
|
||||
// Sort the scores
|
||||
highestScores.Sort((a, b) => b.scoreValue.CompareTo(a.scoreValue));
|
||||
|
||||
// Only save the top 10 scores, so this list doesn't keep growing endlessly
|
||||
progress.AddOrUpdate<List<Score>>("latestScores", latestScores.Take(10).ToList());
|
||||
progress.AddOrUpdate<List<Score>>("highestScores", highestScores.Take(10).ToList());
|
||||
|
||||
userList.Save();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set score metrics
|
||||
/// </summary>
|
||||
private void SetScoreMetrics()
|
||||
{
|
||||
// In de zone
|
||||
perfectSignsText.text = perfectSigns.ToString();
|
||||
|
||||
// Aanvaardbaar
|
||||
goodSignsText.text = goodSigns.ToString();
|
||||
|
||||
// Nipt
|
||||
mehSignsText.text = mehSigns.ToString();
|
||||
|
||||
// Slechte timing
|
||||
terribleSignsText.text = terribleSigns.ToString();
|
||||
|
||||
// Niet Geraden
|
||||
notFoundSignsText.text = incorrectSigns.ToString();
|
||||
|
||||
// LPM
|
||||
int duration = songList.songs[songList.currentSongIndex].duration;
|
||||
int correctSigns = goodSigns + perfectSigns + mehSigns + terribleSigns;
|
||||
lpmText.text = (60f * correctSigns / duration).ToString("#") + " GPM";
|
||||
|
||||
// Score
|
||||
scoreText.text = "Score: " + score.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets the scoreboard
|
||||
/// </summary>
|
||||
private void SetScoreBoard()
|
||||
{
|
||||
// Clean the previous scoreboard entries
|
||||
for (int i = 0; i < scoreboardEntries.Count; i++)
|
||||
{
|
||||
Destroy(scoreboardEntries[i]);
|
||||
}
|
||||
scoreboardEntries.Clear();
|
||||
|
||||
// Instantiate new entries
|
||||
// Get all scores from all users
|
||||
List<Tuple<string, Score>> allScores = new List<Tuple<string, Score>>();
|
||||
foreach (User user in userList.GetUsers())
|
||||
{
|
||||
// Get user's progress for this minigame
|
||||
Progress progress = user.GetMinigameProgress(minigame.index);
|
||||
if (progress != null)
|
||||
{
|
||||
// Add scores to dictionary
|
||||
List<Score> scores = progress.Get<List<Score>>("highestScores");
|
||||
foreach (Score score in scores)
|
||||
{
|
||||
allScores.Add(new Tuple<string, Score>(user.username, score));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Sort allScores based on Score.scoreValue
|
||||
allScores.Sort((a, b) => b.Item2.scoreValue.CompareTo(a.Item2.scoreValue));
|
||||
|
||||
// Instantiate scoreboard entries
|
||||
int rank = 1;
|
||||
foreach (Tuple<string, Score> tup in allScores.Take(10))
|
||||
{
|
||||
string username = tup.Item1;
|
||||
Score score = tup.Item2;
|
||||
|
||||
GameObject entry = Instantiate(scoreboardEntry, scoreboardEntriesContainer);
|
||||
scoreboardEntries.Add(entry);
|
||||
|
||||
// Set the player icon
|
||||
entry.transform.Find("Image").GetComponent<Image>().sprite = userList.GetUserByUsername(username).avatar;
|
||||
|
||||
// Set the player name
|
||||
entry.transform.Find("PlayerName").GetComponent<TMP_Text>().text = username;
|
||||
|
||||
// Set the score
|
||||
entry.transform.Find("Score").GetComponent<TMP_Text>().text = score.scoreValue.ToString();
|
||||
|
||||
// Set the rank
|
||||
entry.transform.Find("Rank").GetComponent<TMP_Text>().text = rank.ToString();
|
||||
|
||||
// Set the ago
|
||||
// Convert the score.time to Datetime
|
||||
DateTime time = DateTime.Parse(score.time);
|
||||
DateTime currentTime = DateTime.Now;
|
||||
TimeSpan diff = currentTime.Subtract(time);
|
||||
|
||||
string formatted;
|
||||
if (diff.Days > 0)
|
||||
{
|
||||
formatted = $"{diff.Days}d ";
|
||||
}
|
||||
else if (diff.Hours > 0)
|
||||
{
|
||||
formatted = $"{diff.Hours}h ";
|
||||
}
|
||||
else if (diff.Minutes > 0)
|
||||
{
|
||||
formatted = $"{diff.Minutes}m ";
|
||||
}
|
||||
else
|
||||
{
|
||||
formatted = "now";
|
||||
}
|
||||
|
||||
entry.transform.Find("Ago").GetComponent<TMP_Text>().text = formatted;
|
||||
|
||||
|
||||
// Alternating colors looks nice
|
||||
if (rank % 2 == 0)
|
||||
{
|
||||
Image image = entry.transform.GetComponent<Image>();
|
||||
image.color = new Color(image.color.r, image.color.g, image.color.b, 0f);
|
||||
}
|
||||
|
||||
// Make new score stand out
|
||||
if (diff.TotalSeconds < 1)
|
||||
{
|
||||
Image image = entry.transform.GetComponent<Image>();
|
||||
image.color = new Color(0, 229, 255, 233);
|
||||
}
|
||||
|
||||
rank++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,18 +1,13 @@
|
||||
fileFormatVersion: 2
|
||||
<<<<<<<< HEAD:Assets/JustSign/Scripts/JustSignController.cs.meta
|
||||
guid: 9ede962218eda88668cd8032b921aada
|
||||
========
|
||||
guid: 40ff941e1b34847bdb160c6950f35aec
|
||||
>>>>>>>> development:Assets/MediaPipeUnity/Common/Scripts/KeypointManager.cs.meta
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences:
|
||||
- canvas: {instanceID: 0}
|
||||
- answerField: {instanceID: 0}
|
||||
- feedBack: {instanceID: 0}
|
||||
- scoreDisplay: {instanceID: 0}
|
||||
- minigame: {instanceID: 0}
|
||||
- songList: {fileID: 11400000, guid: 4f0ce70309bb901feb28199a82a7d195, type: 2}
|
||||
- hitZone: {instanceID: 0}
|
||||
- symbolPrefab: {instanceID: 0}
|
||||
- symbolContainer: {instanceID: 0}
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.Audio;
|
||||
|
||||
/// <summary>
|
||||
/// Class for holding all (static) data about a certain song
|
||||
/// </summary>
|
||||
[CreateAssetMenu(menuName = "Create new Scriptable/Song")]
|
||||
public class Song : ScriptableObject
|
||||
{
|
||||
/// <summary>
|
||||
/// Time at which the first symbol should enter the hit zone
|
||||
/// </summary>
|
||||
public float firstSymbolTime;
|
||||
|
||||
/// <summary>
|
||||
/// Determines every how many seconds a symbol should enter the hit zone
|
||||
/// </summary>
|
||||
public float spawnPeriod;
|
||||
|
||||
/// <summary>
|
||||
/// Duration of the song in seconds
|
||||
/// </summary>
|
||||
public int duration;
|
||||
|
||||
/// <summary>
|
||||
/// The actual audio source
|
||||
/// </summary>
|
||||
public AudioClip song;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cd3d1c3a6cf7ef07abb343f8862a7435
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,19 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// Keep track of all songs
|
||||
/// </summary>
|
||||
[CreateAssetMenu(menuName = "Create new Scriptable/SongList")]
|
||||
public class SongList : ScriptableObject
|
||||
{
|
||||
/// <summary>
|
||||
/// Index of the active/to be loaded/current song
|
||||
/// </summary>
|
||||
public int currentSongIndex = 0;
|
||||
|
||||
/// <summary>
|
||||
/// List of all installed songs
|
||||
/// </summary>
|
||||
public List<Song> songs = new List<Song>();
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ceeae47a3efc2206299ddf1cc31043c2
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -1,22 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e01ded5e221494bdbaab8674c0354f64
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 6
|
||||
defaultSettings:
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
preloadAudioData: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -1,22 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d7ca1b558b7b064cdb6f9d6c951b1522
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 6
|
||||
defaultSettings:
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
preloadAudioData: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -314,6 +314,7 @@ namespace Mediapipe.Unity.Tutorial
|
||||
{
|
||||
learnableProbabilities.Add(((char)(i + 65)).ToString(), softmaxedOutput2[i]);
|
||||
}
|
||||
// publishes: new probs
|
||||
//Debug.Log($"prob = [{learnableProbabilities.Aggregate(" ", (t, kv) => $"{t}{kv.Key}:{kv.Value} ")}]");
|
||||
}
|
||||
else
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
|
||||
using NUnit.Framework;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
|
||||
public class GameControllerTests
|
||||
{
|
||||
|
||||
[UnitySetUp]
|
||||
public IEnumerator SetupFunction()
|
||||
{
|
||||
string path = $"{Application.persistentDataPath}/unit_test_users.json";
|
||||
var oneUser = "{\"currentUserIndex\": 0,\"storedUsers\": [{\"username\": \"TEST\",\"avatar\": {\"instanceID\": 40848},\"playtime\": 0.0,\"courses\": [],\"minigames\": []}]}";
|
||||
|
||||
using (StreamWriter writer = new StreamWriter(path))
|
||||
{
|
||||
writer.Write(oneUser);
|
||||
}
|
||||
|
||||
SystemController.GetInstance().LoadNextScene("SpellingBee/Scenes/Game");
|
||||
yield return new WaitForSeconds(0.2f);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator CheckScoreTest()
|
||||
{
|
||||
GameController gameController = (GameController)GameObject.FindObjectOfType(typeof(GameController));
|
||||
yield return new WaitForSeconds(0.2f);
|
||||
Assert.AreEqual(0, gameController.CalculateScore());
|
||||
gameController.NextWord();
|
||||
Assert.AreEqual(5, gameController.CalculateScore());
|
||||
gameController.NextLetter(true);
|
||||
Assert.AreEqual(6, gameController.CalculateScore());
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator ActivateGameOverTest()
|
||||
{
|
||||
GameController gameController = (GameController)GameObject.FindObjectOfType(typeof(GameController));
|
||||
gameController.ActivateGameOver();
|
||||
|
||||
yield return new WaitForSeconds(0.2f);
|
||||
GameEndedPanel gameEndedPanel = (GameEndedPanel)GameObject.FindObjectOfType(typeof(GameEndedPanel));
|
||||
Assert.NotNull(gameEndedPanel);
|
||||
Assert.AreEqual("VERLOREN", gameEndedPanel.endText.text);
|
||||
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator ActivateWinTests()
|
||||
{
|
||||
GameController gameController = (GameController)GameObject.FindObjectOfType(typeof(GameController));
|
||||
gameController.ActivateWin();
|
||||
|
||||
yield return new WaitForSeconds(0.2f);
|
||||
GameEndedPanel gameEndedPanel = (GameEndedPanel)GameObject.FindObjectOfType(typeof(GameEndedPanel));
|
||||
Assert.NotNull(gameEndedPanel);
|
||||
Assert.AreEqual("GEWONNEN", gameEndedPanel.endText.text);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator CheckGameOverTest()
|
||||
{
|
||||
GameController gameController = (GameController)GameObject.FindObjectOfType(typeof(GameController));
|
||||
gameController.AddSeconds(-60);
|
||||
|
||||
yield return new WaitForSeconds(0.1f);
|
||||
GameEndedPanel gameEndedPanel = (GameEndedPanel)GameObject.FindObjectOfType(typeof(GameEndedPanel));
|
||||
Assert.NotNull(gameEndedPanel);
|
||||
Assert.AreEqual("VERLOREN", gameEndedPanel.endText.text);
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b8e6983596a4a49488dc71c4980b53c7
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,52 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
|
||||
using NUnit.Framework;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
|
||||
public class GameEndedPanelTests
|
||||
{
|
||||
|
||||
[UnitySetUp]
|
||||
public IEnumerator SetupFunction()
|
||||
{
|
||||
string path = $"{Application.persistentDataPath}/unit_test_users.json";
|
||||
var oneUser = "{\"currentUserIndex\": 0,\"storedUsers\": [{\"username\": \"TEST\",\"avatar\": {\"instanceID\": 40848},\"playtime\": 0.0,\"courses\": [],\"minigames\": []}]}";
|
||||
|
||||
using (StreamWriter writer = new StreamWriter(path))
|
||||
{
|
||||
writer.Write(oneUser);
|
||||
}
|
||||
|
||||
SystemController.GetInstance().LoadNextScene("SpellingBee/Scenes/Game");
|
||||
yield return new WaitForSeconds(0.2f);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator ScoreTest()
|
||||
{
|
||||
GameController gameController = (GameController)GameObject.FindObjectOfType(typeof(GameController));
|
||||
gameController.NextWord();
|
||||
gameController.NextLetter(false);
|
||||
gameController.NextLetter(true);
|
||||
gameController.NextLetter(false);
|
||||
yield return new WaitForSeconds(1f);
|
||||
|
||||
|
||||
gameController.ActivateWin();
|
||||
|
||||
GameEndedPanel gameEndedPanel = (GameEndedPanel)GameObject.FindObjectOfType(typeof(GameEndedPanel));
|
||||
Assert.NotNull(gameEndedPanel);
|
||||
Assert.AreEqual("Score: 6", gameEndedPanel.scoreText.text);
|
||||
Assert.AreEqual("1", gameEndedPanel.lettersRightText.text);
|
||||
Assert.AreEqual("2", gameEndedPanel.lettersWrongText.text);
|
||||
Assert.AreEqual("3", gameEndedPanel.lettersTotalText.text);
|
||||
Assert.AreEqual("00:01", gameEndedPanel.timeText.text);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c8161cc9db422724cbfe7634320ecad4
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,25 +0,0 @@
|
||||
{
|
||||
"name": "SpellingBeePlayModeTests",
|
||||
"rootNamespace": "",
|
||||
"references": [
|
||||
"UnityEngine.TestRunner",
|
||||
"UnityEditor.TestRunner",
|
||||
"InterfacesScripts",
|
||||
"Unity.TextMeshPro",
|
||||
"SpellingBeeScripts",
|
||||
"AccountsScripts"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": true,
|
||||
"precompiledReferences": [
|
||||
"nunit.framework.dll"
|
||||
],
|
||||
"autoReferenced": false,
|
||||
"defineConstraints": [
|
||||
"UNITY_INCLUDE_TESTS"
|
||||
],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
||||
@@ -3904,7 +3904,6 @@ MonoBehaviour:
|
||||
modelInfoFile: {fileID: 4900000, guid: fb8b51022bdcd654a9f29c054832a1b5, type: 3}
|
||||
configAsset: {fileID: 4900000, guid: 6288c43cdca97374782dac1ea87aa029, type: 3}
|
||||
screen: {fileID: 1743003084}
|
||||
screen2: {fileID: 0}
|
||||
--- !u!4 &1592592445
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -4552,10 +4551,9 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 44fbed5ae228de39b9f727def7578d06, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
themeList: {fileID: 11400000, guid: a247e2ce790f0f746a3bc521e6ab7d58, type: 2}
|
||||
themeList: {fileID: 0}
|
||||
userList: {fileID: 11400000, guid: 072bec636a40f7e4e93b0ac624a3bda2, type: 2}
|
||||
minigame: {fileID: 11400000, guid: 8a087d241d652634eb4f6352267ea7dc, type: 2}
|
||||
minigamelist: {fileID: 11400000, guid: 51453f9b41bc72f468ba3e67ab622f8f, type: 2}
|
||||
letterPrefab: {fileID: 4639383499500021565, guid: c3e66e8957864914cb022af914df6a28, type: 3}
|
||||
letterContainer: {fileID: 1346005056}
|
||||
wordImage: {fileID: 1338727891}
|
||||
|
||||
@@ -90,12 +90,6 @@ public partial class GameController : MonoBehaviour
|
||||
/// </summary>
|
||||
public Minigame minigame;
|
||||
|
||||
/// <summary>
|
||||
/// We keep the minigamelist as well so that the minigame-index doesn't get reset
|
||||
/// DO NOT REMOVE
|
||||
/// </summary>
|
||||
public MinigameList minigamelist;
|
||||
|
||||
/// <summary>
|
||||
/// Letter prefab
|
||||
/// </summary>
|
||||
@@ -168,7 +162,6 @@ public partial class GameController : MonoBehaviour
|
||||
bonusTimeText.SetActive(false);
|
||||
|
||||
// Create entry in current user for keeping track of progress
|
||||
userList.Load();
|
||||
user = userList.GetCurrentUser();
|
||||
Progress progress = user.GetMinigameProgress(minigame.index);
|
||||
if (progress == null)
|
||||
@@ -234,14 +227,14 @@ public partial class GameController : MonoBehaviour
|
||||
int seconds = Mathf.FloorToInt(timerValue % 60.0f);
|
||||
|
||||
timerText.text = string.Format("{0:00}:{1:00}", minutes, seconds);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Randomly shuffle the list of words
|
||||
/// </summary>
|
||||
public void ShuffleWords()
|
||||
private void ShuffleWords()
|
||||
{
|
||||
for (int i = words.Count - 1; i > 0; i--)
|
||||
{
|
||||
@@ -257,7 +250,7 @@ public partial class GameController : MonoBehaviour
|
||||
/// Calculate the score
|
||||
/// </summary>
|
||||
/// <returns>The calculated score</returns>
|
||||
public int CalculateScore()
|
||||
private int CalculateScore()
|
||||
{
|
||||
return spelledWords * 5 + correctLetters;
|
||||
}
|
||||
@@ -265,7 +258,7 @@ public partial class GameController : MonoBehaviour
|
||||
/// <summary>
|
||||
/// Displays the game over panel and score values
|
||||
/// </summary>
|
||||
public void ActivateGameOver()
|
||||
private void ActivateGameOver()
|
||||
{
|
||||
gameEnded = true;
|
||||
DeleteWord();
|
||||
@@ -287,7 +280,7 @@ public partial class GameController : MonoBehaviour
|
||||
/// <summary>
|
||||
/// Display win screen
|
||||
/// </summary>
|
||||
public void ActivateWin()
|
||||
private void ActivateWin()
|
||||
{
|
||||
gameEnded = true;
|
||||
DeleteWord();
|
||||
@@ -309,7 +302,7 @@ public partial class GameController : MonoBehaviour
|
||||
/// <summary>
|
||||
/// Update and save the scores
|
||||
/// </summary>
|
||||
public void SaveScores()
|
||||
private void SaveScores()
|
||||
{
|
||||
// Calculate new score
|
||||
int newScore = CalculateScore();
|
||||
@@ -344,7 +337,7 @@ public partial class GameController : MonoBehaviour
|
||||
/// <summary>
|
||||
/// Delete all letter objects
|
||||
/// </summary>
|
||||
public void DeleteWord()
|
||||
private void DeleteWord()
|
||||
{
|
||||
for (int i = 0; i < letters.Count; i++)
|
||||
{
|
||||
@@ -357,7 +350,7 @@ public partial class GameController : MonoBehaviour
|
||||
/// Adds seconds to timer
|
||||
/// </summary>
|
||||
/// <param name="seconds"></param>
|
||||
public void AddSeconds(int seconds)
|
||||
private void AddSeconds(int seconds)
|
||||
{
|
||||
timerValue += (float)seconds;
|
||||
bonusTimeText.SetActive(true);
|
||||
@@ -368,10 +361,8 @@ public partial class GameController : MonoBehaviour
|
||||
/// Display the next letter
|
||||
/// </summary>
|
||||
/// <param name="successful">true if the letter was correctly signed, false otherwise</param>
|
||||
public void NextLetter(bool successful)
|
||||
private void NextLetter(bool successful)
|
||||
{
|
||||
if (gameEnded) { return; }
|
||||
|
||||
// Change color of current letter (skip spaces)
|
||||
if (successful)
|
||||
{
|
||||
@@ -404,7 +395,7 @@ public partial class GameController : MonoBehaviour
|
||||
/// <summary>
|
||||
/// Display next word in the series
|
||||
/// </summary>
|
||||
public void NextWord()
|
||||
private void NextWord()
|
||||
{
|
||||
DeleteWord();
|
||||
spelledWords++;
|
||||
@@ -427,7 +418,7 @@ public partial class GameController : MonoBehaviour
|
||||
/// Displays the word that needs to be spelled
|
||||
/// </summary>
|
||||
/// <param name="word">The word to display</param>
|
||||
public void DisplayWord(string word)
|
||||
private void DisplayWord(string word)
|
||||
{
|
||||
for (int i = 0; i < word.Length; i++)
|
||||
{
|
||||
|
||||
File diff suppressed because one or more lines are too long
9
Assets/Tween/Demo.meta
Normal file
9
Assets/Tween/Demo.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9f5880b033929b7478e7b3a9ed6c5ee7
|
||||
folderAsset: yes
|
||||
timeCreated: 1455295494
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
113
Assets/Tween/Demo/TweenDemo.cs
Normal file
113
Assets/Tween/Demo/TweenDemo.cs
Normal file
@@ -0,0 +1,113 @@
|
||||
/*
|
||||
The MIT License (MIT)
|
||||
Copyright (c) 2016 Digital Ruby, LLC
|
||||
http://www.digitalruby.com
|
||||
Created by Jeff Johnson
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
|
||||
// for your own scripts make sure to add the following line:
|
||||
using DigitalRuby.Tween;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
namespace DigitalRuby.Tween
|
||||
{
|
||||
public class TweenDemo : MonoBehaviour
|
||||
{
|
||||
public GameObject Circle;
|
||||
public Light Light;
|
||||
|
||||
private SpriteRenderer spriteRenderer;
|
||||
|
||||
private void TweenMove()
|
||||
{
|
||||
System.Action<ITween<Vector3>> updateCirclePos = (t) =>
|
||||
{
|
||||
Circle.gameObject.transform.position = t.CurrentValue;
|
||||
};
|
||||
|
||||
System.Action<ITween<Vector3>> circleMoveCompleted = (t) =>
|
||||
{
|
||||
Debug.Log("Circle move completed");
|
||||
};
|
||||
|
||||
Vector3 currentPos = Circle.transform.position;
|
||||
Vector3 startPos = Camera.main.ViewportToWorldPoint(Vector3.zero);
|
||||
Vector3 midPos = Camera.main.ViewportToWorldPoint(Vector3.one);
|
||||
Vector3 endPos = Camera.main.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 0.5f));
|
||||
currentPos.z = startPos.z = midPos.z = endPos.z = 0.0f;
|
||||
|
||||
// completion defaults to null if not passed in
|
||||
Circle.gameObject.Tween("MoveCircle", currentPos, startPos, 1.75f, TweenScaleFunctions.CubicEaseIn, updateCirclePos)
|
||||
.ContinueWith(new Vector3Tween().Setup(startPos, midPos, 1.75f, TweenScaleFunctions.Linear, updateCirclePos))
|
||||
.ContinueWith(new Vector3Tween().Setup(midPos, endPos, 1.75f, TweenScaleFunctions.CubicEaseOut, updateCirclePos, circleMoveCompleted));
|
||||
}
|
||||
|
||||
private void TweenColor()
|
||||
{
|
||||
System.Action<ITween<Color>> updateColor = (t) =>
|
||||
{
|
||||
spriteRenderer.color = t.CurrentValue;
|
||||
};
|
||||
|
||||
Color endColor = UnityEngine.Random.ColorHSV(0.0f, 1.0f, 0.0f, 1.0f, 0.5f, 1.0f, 1.0f, 1.0f);
|
||||
|
||||
// completion defaults to null if not passed in
|
||||
Circle.gameObject.Tween("ColorCircle", spriteRenderer.color, endColor, 1.0f, TweenScaleFunctions.QuadraticEaseOut, updateColor);
|
||||
}
|
||||
|
||||
private void TweenRotate()
|
||||
{
|
||||
System.Action<ITween<float>> circleRotate = (t) =>
|
||||
{
|
||||
// start rotation from identity to ensure no stuttering
|
||||
Circle.transform.rotation = Quaternion.identity;
|
||||
Circle.transform.Rotate(Camera.main.transform.forward, t.CurrentValue);
|
||||
};
|
||||
|
||||
float startAngle = Circle.transform.rotation.eulerAngles.z;
|
||||
float endAngle = startAngle + 720.0f;
|
||||
|
||||
// completion defaults to null if not passed in
|
||||
Circle.gameObject.Tween("RotateCircle", startAngle, endAngle, 2.0f, TweenScaleFunctions.CubicEaseInOut, circleRotate);
|
||||
}
|
||||
|
||||
private void TweenReset()
|
||||
{
|
||||
SceneManager.LoadScene(0, LoadSceneMode.Single);
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
// for demo purposes, clear all tweens when new level loads, default is false
|
||||
TweenFactory.ClearTweensOnLevelLoad = true;
|
||||
spriteRenderer = Circle.GetComponent<SpriteRenderer>();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (Input.GetKeyDown(KeyCode.Alpha1))
|
||||
{
|
||||
TweenMove();
|
||||
}
|
||||
if (Input.GetKeyDown(KeyCode.Alpha2))
|
||||
{
|
||||
TweenColor();
|
||||
}
|
||||
if (Input.GetKeyDown(KeyCode.Alpha3))
|
||||
{
|
||||
TweenRotate();
|
||||
}
|
||||
if (Input.GetKeyDown(KeyCode.R))
|
||||
{
|
||||
TweenReset();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ee6e0c438a9ea5a44abcb8adb89c6e9b
|
||||
guid: 85997561a67b3e740be145c96c4a0b37
|
||||
timeCreated: 1455294104
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
BIN
Assets/Tween/Demo/TweenDemoCircle.png
Normal file
BIN
Assets/Tween/Demo/TweenDemoCircle.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.7 KiB |
135
Assets/Tween/Demo/TweenDemoCircle.png.meta
Normal file
135
Assets/Tween/Demo/TweenDemoCircle.png.meta
Normal file
@@ -0,0 +1,135 @@
|
||||
fileFormatVersion: 2
|
||||
guid: df831354d51eda74491b6ef6cfbbc4d0
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 16
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 32
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 1
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
85
Assets/Tween/Demo/TweenDemoMaterial.mat
Normal file
85
Assets/Tween/Demo/TweenDemoMaterial.mat
Normal file
@@ -0,0 +1,85 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: TweenDemoMaterial
|
||||
m_Shader: {fileID: 10800, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords:
|
||||
- ETC1_EXTERNAL_ALPHA
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 5
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _AlphaTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- PixelSnap: 0
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _EnableExternalAlpha: 0
|
||||
- _Glossiness: 0.5
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _Flip: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _RendererColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
8
Assets/Tween/Demo/TweenDemoMaterial.mat.meta
Normal file
8
Assets/Tween/Demo/TweenDemoMaterial.mat.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2d994b80f30361c449f5504b6ddb859a
|
||||
timeCreated: 1455295548
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
669
Assets/Tween/Demo/TweenDemoScene.unity
Normal file
669
Assets/Tween/Demo/TweenDemoScene.unity
Normal file
@@ -0,0 +1,669 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!29 &1
|
||||
OcclusionCullingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_OcclusionBakeSettings:
|
||||
smallestOccluder: 5
|
||||
smallestHole: 0.25
|
||||
backfaceThreshold: 100
|
||||
m_SceneGUID: 00000000000000000000000000000000
|
||||
m_OcclusionCullingData: {fileID: 0}
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 9
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
m_FogDensity: 0.01
|
||||
m_LinearFogStart: 0
|
||||
m_LinearFogEnd: 300
|
||||
m_AmbientSkyColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
m_AmbientEquatorColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
m_AmbientGroundColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
m_AmbientIntensity: 0
|
||||
m_AmbientMode: 3
|
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||
m_SkyboxMaterial: {fileID: 0}
|
||||
m_HaloStrength: 0.5
|
||||
m_FlareStrength: 1
|
||||
m_FlareFadeSpeed: 3
|
||||
m_HaloTexture: {fileID: 0}
|
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_DefaultReflectionMode: 0
|
||||
m_DefaultReflectionResolution: 128
|
||||
m_ReflectionBounces: 1
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 12
|
||||
m_GIWorkflowMode: 1
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_EnvironmentLightingMode: 0
|
||||
m_EnableBakedLightmaps: 0
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 12
|
||||
m_Resolution: 2
|
||||
m_BakeResolution: 40
|
||||
m_AtlasSize: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 0
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAmbientOcclusion: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 1024
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 1
|
||||
m_BakeBackend: 0
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 512
|
||||
m_PVRBounces: 2
|
||||
m_PVREnvironmentSampleCount: 512
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_PVRFilteringMode: 0
|
||||
m_PVRDenoiserTypeDirect: 0
|
||||
m_PVRDenoiserTypeIndirect: 0
|
||||
m_PVRDenoiserTypeAO: 0
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVREnvironmentMIS: 0
|
||||
m_PVRCulling: 1
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 5
|
||||
m_PVRFilteringGaussRadiusAO: 2
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
m_LightingSettings: {fileID: 4890085278179872738, guid: 493623c166a735445b4283396018d38b, type: 2}
|
||||
--- !u!196 &4
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 2
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.4
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666667
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
accuratePlacement: 0
|
||||
maxJobWorkers: 0
|
||||
preserveTilesOutsideBounds: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &279954674
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 279954676}
|
||||
- component: {fileID: 279954675}
|
||||
m_Layer: 0
|
||||
m_Name: Circle
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!212 &279954675
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 279954674}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 0
|
||||
m_RayTracingMode: 0
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 2d994b80f30361c449f5504b6ddb859a, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 0
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_Sprite: {fileID: 21300000, guid: df831354d51eda74491b6ef6cfbbc4d0, type: 3}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_FlipX: 0
|
||||
m_FlipY: 0
|
||||
m_DrawMode: 0
|
||||
m_Size: {x: 1, y: 1}
|
||||
m_AdaptiveModeThreshold: 0.5
|
||||
m_SpriteTileMode: 0
|
||||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!4 &279954676
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 279954674}
|
||||
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_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &309942542
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 309942543}
|
||||
- component: {fileID: 309942545}
|
||||
- component: {fileID: 309942544}
|
||||
m_Layer: 5
|
||||
m_Name: Commands
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &309942543
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 309942542}
|
||||
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: 2081690836}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 266, y: -8}
|
||||
m_SizeDelta: {x: 500, y: -16}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &309942544
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 309942542}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_FontData:
|
||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_FontSize: 20
|
||||
m_FontStyle: 0
|
||||
m_BestFit: 0
|
||||
m_MinSize: 0
|
||||
m_MaxSize: 40
|
||||
m_Alignment: 0
|
||||
m_AlignByGeometry: 0
|
||||
m_RichText: 1
|
||||
m_HorizontalOverflow: 0
|
||||
m_VerticalOverflow: 0
|
||||
m_LineSpacing: 1
|
||||
m_Text: 'Commands:
|
||||
|
||||
1] Tween Move
|
||||
|
||||
2] Tween Color
|
||||
|
||||
3] Tween Rotate
|
||||
|
||||
R]
|
||||
Reset'
|
||||
--- !u!222 &309942545
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 309942542}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &464777571
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 464777577}
|
||||
- component: {fileID: 464777576}
|
||||
- component: {fileID: 464777574}
|
||||
- component: {fileID: 464777573}
|
||||
- component: {fileID: 464777572}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &464777572
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 464777571}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 85997561a67b3e740be145c96c4a0b37, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
Circle: {fileID: 279954674}
|
||||
Light: {fileID: 1462085731}
|
||||
--- !u!81 &464777573
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 464777571}
|
||||
m_Enabled: 1
|
||||
--- !u!124 &464777574
|
||||
Behaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 464777571}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &464777576
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 464777571}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 2
|
||||
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_FocalLength: 50
|
||||
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: 1
|
||||
orthographic size: 10
|
||||
m_Depth: -1
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 0
|
||||
m_AllowMSAA: 1
|
||||
m_AllowDynamicResolution: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
--- !u!4 &464777577
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 464777571}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: -10}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1462085730
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1462085732}
|
||||
- component: {fileID: 1462085731}
|
||||
m_Layer: 0
|
||||
m_Name: Point light
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!108 &1462085731
|
||||
Light:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1462085730}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 10
|
||||
m_Type: 2
|
||||
m_Shape: 0
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_Intensity: 2
|
||||
m_Range: 500
|
||||
m_SpotAngle: 30
|
||||
m_InnerSpotAngle: 21.80208
|
||||
m_CookieSize: 10
|
||||
m_Shadows:
|
||||
m_Type: 0
|
||||
m_Resolution: -1
|
||||
m_CustomResolution: -1
|
||||
m_Strength: 1
|
||||
m_Bias: 0.05
|
||||
m_NormalBias: 0.4
|
||||
m_NearPlane: 0.2
|
||||
m_CullingMatrixOverride:
|
||||
e00: 1
|
||||
e01: 0
|
||||
e02: 0
|
||||
e03: 0
|
||||
e10: 0
|
||||
e11: 1
|
||||
e12: 0
|
||||
e13: 0
|
||||
e20: 0
|
||||
e21: 0
|
||||
e22: 1
|
||||
e23: 0
|
||||
e30: 0
|
||||
e31: 0
|
||||
e32: 0
|
||||
e33: 1
|
||||
m_UseCullingMatrixOverride: 0
|
||||
m_Cookie: {fileID: 0}
|
||||
m_DrawHalo: 0
|
||||
m_Flare: {fileID: 0}
|
||||
m_RenderMode: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingLayerMask: 1
|
||||
m_Lightmapping: 4
|
||||
m_LightShadowCasterMode: 0
|
||||
m_AreaSize: {x: 1, y: 1}
|
||||
m_BounceIntensity: 0
|
||||
m_ColorTemperature: 6570
|
||||
m_UseColorTemperature: 0
|
||||
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_UseBoundingSphereOverride: 0
|
||||
m_UseViewFrustumForShadowCasterCull: 1
|
||||
m_ShadowRadius: 0
|
||||
m_ShadowAngle: 0
|
||||
--- !u!4 &1462085732
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1462085730}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: -100}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1986219434
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1986219437}
|
||||
- component: {fileID: 1986219436}
|
||||
- component: {fileID: 1986219435}
|
||||
m_Layer: 0
|
||||
m_Name: EventSystem
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &1986219435
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1986219434}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_SendPointerHoverToParent: 1
|
||||
m_HorizontalAxis: Horizontal
|
||||
m_VerticalAxis: Vertical
|
||||
m_SubmitButton: Submit
|
||||
m_CancelButton: Cancel
|
||||
m_InputActionsPerSecond: 10
|
||||
m_RepeatDelay: 0.5
|
||||
m_ForceModuleActive: 0
|
||||
--- !u!114 &1986219436
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1986219434}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_FirstSelected: {fileID: 0}
|
||||
m_sendNavigationEvents: 1
|
||||
m_DragThreshold: 5
|
||||
--- !u!4 &1986219437
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1986219434}
|
||||
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_RootOrder: 4
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &2081690832
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2081690836}
|
||||
- component: {fileID: 2081690835}
|
||||
- component: {fileID: 2081690834}
|
||||
- component: {fileID: 2081690833}
|
||||
m_Layer: 5
|
||||
m_Name: UICanvas
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &2081690833
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2081690832}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreReversedGraphics: 1
|
||||
m_BlockingObjects: 0
|
||||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
--- !u!114 &2081690834
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2081690832}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_UiScaleMode: 1
|
||||
m_ReferencePixelsPerUnit: 100
|
||||
m_ScaleFactor: 1
|
||||
m_ReferenceResolution: {x: 800, y: 600}
|
||||
m_ScreenMatchMode: 0
|
||||
m_MatchWidthOrHeight: 0
|
||||
m_PhysicalUnit: 3
|
||||
m_FallbackScreenDPI: 96
|
||||
m_DefaultSpriteDPI: 96
|
||||
m_DynamicPixelsPerUnit: 1
|
||||
m_PresetInfoIsWorld: 0
|
||||
--- !u!223 &2081690835
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2081690832}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 0
|
||||
m_Camera: {fileID: 0}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 0
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_AdditionalShaderChannelsFlag: 25
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 0
|
||||
m_TargetDisplay: 0
|
||||
--- !u!224 &2081690836
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2081690832}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 309942543}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 3
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0, y: 0}
|
||||
8
Assets/Tween/Demo/TweenDemoScene.unity.meta
Normal file
8
Assets/Tween/Demo/TweenDemoScene.unity.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ad948b3082b546f4e8f3565bdfe0abf6
|
||||
timeCreated: 1455295598
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
64
Assets/Tween/Demo/TweenDemoSceneSettings.lighting
Normal file
64
Assets/Tween/Demo/TweenDemoSceneSettings.lighting
Normal file
@@ -0,0 +1,64 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!850595691 &4890085278179872738
|
||||
LightingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: TweenDemoSceneSettings
|
||||
serializedVersion: 4
|
||||
m_GIWorkflowMode: 1
|
||||
m_EnableBakedLightmaps: 0
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_RealtimeEnvironmentLighting: 1
|
||||
m_BounceScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_UsingShadowmask: 0
|
||||
m_BakeBackend: 0
|
||||
m_LightmapMaxSize: 1024
|
||||
m_BakeResolution: 40
|
||||
m_Padding: 2
|
||||
m_LightmapCompression: 3
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 0
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAO: 0
|
||||
m_MixedBakeMode: 1
|
||||
m_LightmapsBakeMode: 1
|
||||
m_FilterMode: 1
|
||||
m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_RealtimeResolution: 2
|
||||
m_ForceWhiteAlbedo: 0
|
||||
m_ForceUpdates: 0
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherRayCount: 1024
|
||||
m_FinalGatherFiltering: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 512
|
||||
m_PVREnvironmentSampleCount: 512
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_PVRBounces: 2
|
||||
m_PVRMinBounces: 2
|
||||
m_PVREnvironmentMIS: 0
|
||||
m_PVRFilteringMode: 0
|
||||
m_PVRDenoiserTypeDirect: 0
|
||||
m_PVRDenoiserTypeIndirect: 0
|
||||
m_PVRDenoiserTypeAO: 0
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 5
|
||||
m_PVRFilteringGaussRadiusAO: 2
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_PVRTiledBaking: 0
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0f5b5e156c628bf189df5723ad2aab96
|
||||
guid: 493623c166a735445b4283396018d38b
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
mainObjectFileID: 4890085278179872738
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a92b9838d20352bb8b984c2e361c7fba
|
||||
guid: fed3e516d8073fd49a3db979e66ff443
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2fd5cdf8e7f70bf4882b352aaaa8a2bf
|
||||
guid: 67bb46dfd509932429fc985052104b72
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
8
Assets/_Heathen Engineering/Assets/UX.meta
Normal file
8
Assets/_Heathen Engineering/Assets/UX.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 847642ab4c6075d4d934ce75df517885
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "HeathenEngineering.UX",
|
||||
"references": [
|
||||
"GUID:58d42c70423577947911995925414405",
|
||||
"GUID:6055be8ebefd69e48b49212b09b47b2f",
|
||||
"GUID:75469ad4d38634e559750d17036d5f7c"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8024acb9574451c40ba558529a3ef51c
|
||||
guid: f5702ca0318eb1942af8daf18131f44d
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
8
Assets/_Heathen Engineering/Assets/UX/Icons.meta
Normal file
8
Assets/_Heathen Engineering/Assets/UX/Icons.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 00431337d21e1ff4f80d7e6f0761c4ee
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 15e6763d3d1ad8046889af0be1224f8e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
@@ -0,0 +1,104 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b0b13fccedbbc0243acde6180912a042
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
@@ -0,0 +1,104 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0135e3d1b81285f48997c72fd061f8d8
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 981 B |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user