Compare commits
6 Commits
Gameclient
...
8bec2f0cf8
| Author | SHA1 | Date | |
|---|---|---|---|
| 8bec2f0cf8 | |||
|
|
9a99405f4b | ||
|
|
b4b746de25 | ||
|
|
dd5aefcb49 | ||
|
|
c11ca05ea8 | ||
|
|
9f71b6a84a |
13
.claude/settings.local.json
Normal file
13
.claude/settings.local.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Bash(nul)",
|
||||
"Bash(mkdir:*)",
|
||||
"Bash(dir:*)",
|
||||
"Bash(findstr:*)",
|
||||
"Bash(move \"Assets\\Scripts\\TiltUI.cs\" \"Assets\\Scripts\\TiltUI.cs.DISABLED\")"
|
||||
],
|
||||
"deny": [],
|
||||
"ask": []
|
||||
}
|
||||
}
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -186,7 +186,6 @@ StyleCopReport.xml
|
||||
*_p.c
|
||||
*_h.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.iobj
|
||||
*.pch
|
||||
@@ -305,7 +304,6 @@ PublishScripts/
|
||||
# NuGet Symbol Packages
|
||||
*.snupkg
|
||||
# The packages folder can be ignored because of Package Restore
|
||||
**/[Pp]ackages/*
|
||||
# except build/, which is used as an MSBuild target.
|
||||
!**/[Pp]ackages/build/
|
||||
# Uncomment if necessary however generally it will be regenerated when needed
|
||||
@@ -501,3 +499,5 @@ FodyWeavers.xsd
|
||||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/unity,visualstudiocode,visualstudio,vim
|
||||
|
||||
|
||||
.utmp/
|
||||
|
||||
8
Assets/Build Profiles.meta
Normal file
8
Assets/Build Profiles.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 92df50b8fba934144a4c4dcaf506f9b4
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dancing triangle 1 Hour [YB3yHfqdw3Y].mp3
Normal file
BIN
Assets/Dancing triangle 1 Hour [YB3yHfqdw3Y].mp3
Normal file
Binary file not shown.
23
Assets/Dancing triangle 1 Hour [YB3yHfqdw3Y].mp3.meta
Normal file
23
Assets/Dancing triangle 1 Hour [YB3yHfqdw3Y].mp3.meta
Normal file
@@ -0,0 +1,23 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 58ebc3ffa125a9949953f6704e0a8c39
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 8
|
||||
defaultSettings:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/GameManager.meta
Normal file
8
Assets/GameManager.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bbd26b895bc2b894b8989c08d9fd9197
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
21
Assets/GameManager/ITask.cs
Normal file
21
Assets/GameManager/ITask.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
//using GeoSus.Client;
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
public enum TaskType
|
||||
{
|
||||
Task
|
||||
}
|
||||
|
||||
public interface ITask
|
||||
{
|
||||
public string TaskID { get; set; } // Unikátní ID úkolu pro server
|
||||
public TaskType TaskType { get; set; } // Typ úkolu
|
||||
public string TaskName { get; set; } // Viditelný název úkolu
|
||||
public (double, double) TaskLocation { get; set; } // Poloha na mapě
|
||||
public bool IsCompleted { get; } // Stav dokončení úkolu
|
||||
|
||||
void Initialize(Action<ITask> onCompleted); // Vytvoření tasku
|
||||
void ExitTask(Action<ITask> onExit); // Při opuštění úkolu
|
||||
void Complete(); // Označit úkol jako dokončený
|
||||
}
|
||||
2
Assets/GameManager/ITask.cs.meta
Normal file
2
Assets/GameManager/ITask.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 00f17be43b5049645915f193bf99516b
|
||||
7
Assets/InputSystem_Actions.inputactions.meta
Normal file
7
Assets/InputSystem_Actions.inputactions.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 55b6abf6106d3da4d9a6d0550a804f3b
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Materials.meta
Normal file
8
Assets/Materials.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2230bf768ecb84610af77bea6cdd7074
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Readme.asset.meta
Normal file
8
Assets/Readme.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: befd731805f7270498a643333899b479
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
7
Assets/SampleScene.unity.meta
Normal file
7
Assets/SampleScene.unity.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8afa6ce05eb7dba4c894b910786e3baf
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Scenes.meta
Normal file
8
Assets/Scenes.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5e17b3a6c19f5404d8d097400a844a60
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
7
Assets/Scenes/SampleScene.unity.meta
Normal file
7
Assets/Scenes/SampleScene.unity.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8afa6ce05eb7dba4c894b910786e3baf
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Scripts.meta
Normal file
8
Assets/Scripts.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 50c3453b214b4c24487f630d82fff48b
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
27
Assets/Scripts/FollowPositionOnly.cs
Normal file
27
Assets/Scripts/FollowPositionOnly.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class FollowParentPositionOnly : MonoBehaviour
|
||||
{
|
||||
public Transform parent;
|
||||
private Quaternion initialRotation;
|
||||
private Vector3 worldOffset;
|
||||
|
||||
void Start()
|
||||
{
|
||||
if (parent == null)
|
||||
parent = transform.parent;
|
||||
|
||||
// Store offset in WORLD space
|
||||
worldOffset = transform.position - parent.position;
|
||||
initialRotation = transform.rotation;
|
||||
}
|
||||
|
||||
void LateUpdate()
|
||||
{
|
||||
if (parent == null) return;
|
||||
|
||||
// Move child using stored world offset
|
||||
transform.position = parent.position + worldOffset;
|
||||
transform.rotation = initialRotation;
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/FollowPositionOnly.cs.meta
Normal file
2
Assets/Scripts/FollowPositionOnly.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b159266533f64ba4eb30ef6112cc4611
|
||||
30
Assets/Scripts/GyroPlatformController.cs
Normal file
30
Assets/Scripts/GyroPlatformController.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class GyroPlatformController : MonoBehaviour
|
||||
{
|
||||
public Rigidbody ball;
|
||||
public float forceStrength = 30f;
|
||||
public float dampingPerSecond = 0.9f;
|
||||
void Start()
|
||||
{
|
||||
if (SystemInfo.supportsGyroscope)
|
||||
{
|
||||
Input.gyro.enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
void FixedUpdate()
|
||||
{
|
||||
if (ball == null) return;
|
||||
|
||||
Vector3 g = Input.gyro.gravity;
|
||||
|
||||
Vector3 force = new Vector3(g.x, 0f, g.y);
|
||||
|
||||
ball.AddForce(force * forceStrength, ForceMode.Acceleration);
|
||||
|
||||
float frameDamping = Mathf.Pow(dampingPerSecond, Time.deltaTime);
|
||||
|
||||
ball.linearVelocity *= frameDamping;
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/GyroPlatformController.cs.meta
Normal file
2
Assets/Scripts/GyroPlatformController.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d665da208a5a3ad408e85341263c60e5
|
||||
33
Assets/Scripts/HoleGoalTrigger.cs
Normal file
33
Assets/Scripts/HoleGoalTrigger.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class HoleGoalTrigger : MonoBehaviour
|
||||
{
|
||||
[Tooltip("Optional: assign the ball rigidbody or leave empty to accept any Rigidbody with tag Ball.")]
|
||||
public Rigidbody ballRigidbody;
|
||||
|
||||
[Tooltip("If true, checks tag 'Ball' when ballRigidbody not assigned.")]
|
||||
public bool requireBallTag = true;
|
||||
|
||||
public System.Action OnBallScored;
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (ballRigidbody != null)
|
||||
{
|
||||
if (other.attachedRigidbody == ballRigidbody)
|
||||
{
|
||||
OnBallScored?.Invoke();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (other.attachedRigidbody == null) return;
|
||||
|
||||
if (requireBallTag)
|
||||
{
|
||||
if (!other.CompareTag("Ball")) return;
|
||||
}
|
||||
|
||||
OnBallScored?.Invoke();
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/HoleGoalTrigger.cs.meta
Normal file
2
Assets/Scripts/HoleGoalTrigger.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e6bad0eb7441229448191433d8a9f758
|
||||
30
Assets/Scripts/PlayAudioOnCamera.cs
Normal file
30
Assets/Scripts/PlayAudioOnCamera.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class PlayAudioOnCamera : MonoBehaviour
|
||||
{
|
||||
public AudioClip clip; // assign your audio file in the Inspector
|
||||
private AudioSource audioSource;
|
||||
|
||||
void Start()
|
||||
{
|
||||
// Get or add an AudioSource to this GameObject
|
||||
audioSource = gameObject.GetComponent<AudioSource>();
|
||||
if (audioSource == null)
|
||||
{
|
||||
audioSource = gameObject.AddComponent<AudioSource>();
|
||||
}
|
||||
|
||||
// Assign the audio clip
|
||||
if (clip != null)
|
||||
{
|
||||
audioSource.clip = clip;
|
||||
audioSource.playOnAwake = false;
|
||||
audioSource.loop = false; // change to true if you want looping
|
||||
audioSource.Play();
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning("PlayAudioOnCamera: No audio clip assigned!");
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/PlayAudioOnCamera.cs.meta
Normal file
2
Assets/Scripts/PlayAudioOnCamera.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 37f33c8b63e5b384db6a385b909b27aa
|
||||
29
Assets/Scripts/TeleportOnTrigger.cs
Normal file
29
Assets/Scripts/TeleportOnTrigger.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class TeleportOnTrigger : MonoBehaviour
|
||||
{
|
||||
[Header("Teleport Target")]
|
||||
public Transform targetPosition;
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (targetPosition == null) return;
|
||||
|
||||
Rigidbody rb = other.attachedRigidbody;
|
||||
|
||||
if (rb != null)
|
||||
{
|
||||
// STOP ALL MOTION
|
||||
rb.linearVelocity = Vector3.zero;
|
||||
rb.angularVelocity = Vector3.zero;
|
||||
|
||||
// TELEPORT
|
||||
rb.position = targetPosition.position;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Non-physics objects
|
||||
other.transform.position = targetPosition.position;
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/TeleportOnTrigger.cs.meta
Normal file
2
Assets/Scripts/TeleportOnTrigger.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2e101cb487f02244592e16548d98f0b5
|
||||
187
Assets/Scripts/TiltHoleMiniGameManager.cs
Normal file
187
Assets/Scripts/TiltHoleMiniGameManager.cs
Normal file
@@ -0,0 +1,187 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
public class TiltHoleMiniGameManager : MonoBehaviour, ITask
|
||||
{
|
||||
// =========================
|
||||
// ITask PROPERTIES
|
||||
// =========================
|
||||
|
||||
public string TaskID { get; private set; } = "TILT_HOLE_01";
|
||||
public TaskType TaskType { get; private set; } = TaskType.Task;
|
||||
public string TaskName { get; private set; } = "Tilt Ball Into Hole";
|
||||
public (double, double) TaskLocation { get; private set; } = (0, 0);
|
||||
public bool IsCompleted { get; private set; }
|
||||
|
||||
private Action<ITask> _onCompletedCallback;
|
||||
|
||||
// =========================
|
||||
// MINIGAME REFERENCES
|
||||
// =========================
|
||||
|
||||
[Header("References")]
|
||||
public GyroPlatformController platformController;
|
||||
public HoleGoalTrigger goalTrigger;
|
||||
public Rigidbody ball;
|
||||
|
||||
[Header("Audio")]
|
||||
public AudioClip startSound;
|
||||
public AudioClip winSound;
|
||||
|
||||
private AudioSource audioSource;
|
||||
|
||||
[Header("Game State")]
|
||||
public bool isActive = false;
|
||||
|
||||
[Header("Win Behavior")]
|
||||
public bool freezeOnWin = true;
|
||||
public bool disableBallOnWin = false;
|
||||
|
||||
// =========================
|
||||
// UNITY LIFECYCLE
|
||||
// =========================
|
||||
|
||||
void Awake()
|
||||
{
|
||||
if (platformController == null) platformController = FindFirstObjectByType<GyroPlatformController>();
|
||||
if (goalTrigger == null) goalTrigger = FindFirstObjectByType<HoleGoalTrigger>();
|
||||
|
||||
if (Camera.main != null)
|
||||
{
|
||||
audioSource = Camera.main.GetComponent<AudioSource>();
|
||||
if (audioSource == null)
|
||||
audioSource = Camera.main.gameObject.AddComponent<AudioSource>();
|
||||
}
|
||||
}
|
||||
|
||||
void Start()
|
||||
{
|
||||
if (goalTrigger != null)
|
||||
{
|
||||
goalTrigger.OnBallScored += HandleWin;
|
||||
}
|
||||
|
||||
if (ball != null && goalTrigger != null)
|
||||
{
|
||||
goalTrigger.ballRigidbody = ball;
|
||||
}
|
||||
}
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
if (goalTrigger != null)
|
||||
goalTrigger.OnBallScored -= HandleWin;
|
||||
}
|
||||
|
||||
// =========================
|
||||
// TASK LIFECYCLE
|
||||
// =========================
|
||||
|
||||
public void Initialize(Action<ITask> onCompleted)
|
||||
{
|
||||
Debug.Log("Initializing Tilt Hole Task");
|
||||
|
||||
IsCompleted = false;
|
||||
isActive = true;
|
||||
_onCompletedCallback = onCompleted;
|
||||
|
||||
if (platformController != null)
|
||||
platformController.enabled = true;
|
||||
|
||||
if (ball != null)
|
||||
{
|
||||
ball.isKinematic = false;
|
||||
ball.linearVelocity = Vector3.zero;
|
||||
ball.angularVelocity = Vector3.zero;
|
||||
}
|
||||
|
||||
if (startSound != null && audioSource != null)
|
||||
{
|
||||
audioSource.PlayOneShot(startSound);
|
||||
}
|
||||
}
|
||||
|
||||
public void ExitTask(Action<ITask> onExit)
|
||||
{
|
||||
Debug.Log("Exiting Tilt Hole Task");
|
||||
|
||||
isActive = false;
|
||||
|
||||
if (platformController != null)
|
||||
platformController.enabled = false;
|
||||
|
||||
onExit?.Invoke(this);
|
||||
}
|
||||
|
||||
public void Complete()
|
||||
{
|
||||
if (IsCompleted) return;
|
||||
|
||||
Debug.Log("Task Complete: Tilt Hole");
|
||||
|
||||
IsCompleted = true;
|
||||
isActive = false;
|
||||
|
||||
if (winSound != null && audioSource != null)
|
||||
{
|
||||
audioSource.PlayOneShot(winSound);
|
||||
}
|
||||
|
||||
_onCompletedCallback?.Invoke(this);
|
||||
ExitTask(null);
|
||||
}
|
||||
|
||||
// =========================
|
||||
// MINIGAME WIN EVENT
|
||||
// =========================
|
||||
|
||||
private void HandleWin()
|
||||
{
|
||||
if (!isActive) return;
|
||||
|
||||
Debug.Log("Ball reached hole.");
|
||||
|
||||
if (freezeOnWin)
|
||||
{
|
||||
if (platformController != null)
|
||||
platformController.enabled = false;
|
||||
|
||||
if (ball != null)
|
||||
{
|
||||
ball.linearVelocity = Vector3.zero;
|
||||
ball.angularVelocity = Vector3.zero;
|
||||
ball.isKinematic = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (disableBallOnWin && ball != null)
|
||||
{
|
||||
ball.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
Complete(); // 🔥 THIS completes the task
|
||||
}
|
||||
|
||||
// =========================
|
||||
// DEBUG GUI
|
||||
// =========================
|
||||
|
||||
void OnGUI()
|
||||
{
|
||||
GUIStyle s = new GUIStyle(GUI.skin.label);
|
||||
s.fontSize = 24;
|
||||
|
||||
if (isActive)
|
||||
{
|
||||
s.normal.textColor = Color.white;
|
||||
GUI.Label(new Rect(10, 10, 700, 30),
|
||||
"Goal: Tilt platform to roll the ball into the hole.", s);
|
||||
}
|
||||
else if (IsCompleted)
|
||||
{
|
||||
s.normal.textColor = Color.yellow;
|
||||
GUI.Label(new Rect(10, 10, 700, 30),
|
||||
"Task Completed!", s);
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/TiltHoleMiniGameManager.cs.meta
Normal file
2
Assets/Scripts/TiltHoleMiniGameManager.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9f70c5a8e211b7142b26b4ea95bf2348
|
||||
51
Assets/Scripts/WindController.cs
Normal file
51
Assets/Scripts/WindController.cs
Normal file
@@ -0,0 +1,51 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class WindController : MonoBehaviour
|
||||
{
|
||||
[Header("settings větru")]
|
||||
[Tooltip("Maximální síla větru (kladná i záporná)")]
|
||||
public float maxWindTorque = 8f;
|
||||
|
||||
[Tooltip("Jak rychle se větr mění směrem/sílou")]
|
||||
public float windChangeSpeed = 0.6f;
|
||||
|
||||
[Tooltip("Jak často se objeví silnější vichřice (v sekundách)")]
|
||||
public float gustInterval = 4f;
|
||||
|
||||
[Tooltip("Multiplier pro sílu vichřice")]
|
||||
public float gustMultiplier = 2.0f;
|
||||
|
||||
public float CurrentWindTorque { get; private set; }
|
||||
|
||||
private float targetTorque;
|
||||
private float gustTimer;
|
||||
|
||||
void Start()
|
||||
{
|
||||
PickNewTargetTorque();
|
||||
gustTimer = gustInterval;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
// Smoothly move wind toward target torque
|
||||
CurrentWindTorque = Mathf.Lerp(CurrentWindTorque, targetTorque, Time.deltaTime * windChangeSpeed);
|
||||
|
||||
// Occasional gusts
|
||||
gustTimer -= Time.deltaTime;
|
||||
if (gustTimer <= 0f)
|
||||
{
|
||||
// Apply a short gust by shifting target torque more aggressively
|
||||
float gust = Random.Range(-maxWindTorque, maxWindTorque) * gustMultiplier;
|
||||
targetTorque = Mathf.Clamp(gust, -maxWindTorque * gustMultiplier, maxWindTorque * gustMultiplier);
|
||||
|
||||
gustTimer = gustInterval;
|
||||
Invoke(nameof(PickNewTargetTorque), 0.8f); // gust lasts ~0.8s
|
||||
}
|
||||
}
|
||||
|
||||
private void PickNewTargetTorque()
|
||||
{
|
||||
targetTorque = Random.Range(-maxWindTorque, maxWindTorque);
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/WindController.cs.meta
Normal file
2
Assets/Scripts/WindController.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a2d62d3ffa507924ab3a6fd97f185f3e
|
||||
8
Assets/Settings.meta
Normal file
8
Assets/Settings.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 148cdcfbaffe4a24b85ef92b75ce4ff7
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Settings/Build Profiles.meta
Normal file
8
Assets/Settings/Build Profiles.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 92df50b8fba934144a4c4dcaf506f9b4
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
55
Assets/Settings/Build Profiles/Android™ 1.asset
Normal file
55
Assets/Settings/Build Profiles/Android™ 1.asset
Normal file
@@ -0,0 +1,55 @@
|
||||
%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: 15003, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_Name: "Android\u2122 1"
|
||||
m_EditorClassIdentifier: UnityEditor.dll::UnityEditor.Build.Profile.BuildProfile
|
||||
m_AssetVersion: 1
|
||||
m_BuildTarget: 13
|
||||
m_Subtarget: 0
|
||||
m_PlatformId: b9b35072a6f44c2e863f17467ea3dc13
|
||||
m_PlatformBuildProfile:
|
||||
rid: 240730859082350731
|
||||
m_OverrideGlobalSceneList: 0
|
||||
m_Scenes: []
|
||||
m_ScriptingDefines: []
|
||||
m_PlayerSettingsYaml:
|
||||
m_Settings: []
|
||||
references:
|
||||
version: 2
|
||||
RefIds:
|
||||
- rid: 240730859082350731
|
||||
type: {class: AndroidPlatformBuildSettings, ns: UnityEditor.Android, asm: UnityEditor.Android.Extensions}
|
||||
data:
|
||||
m_Development: 0
|
||||
m_ConnectProfiler: 0
|
||||
m_BuildWithDeepProfilingSupport: 0
|
||||
m_AllowDebugging: 0
|
||||
m_WaitForManagedDebugger: 0
|
||||
m_ManagedDebuggerFixedPort: 0
|
||||
m_ExplicitNullChecks: 0
|
||||
m_ExplicitDivideByZeroChecks: 0
|
||||
m_ExplicitArrayBoundsChecks: 0
|
||||
m_CompressionType: 2
|
||||
m_InstallInBuildFolder: 0
|
||||
m_InsightsSettingsContainer:
|
||||
m_BuildProfileEngineDiagnosticsState: 2
|
||||
m_BuildSubtarget: 0
|
||||
m_BuildSystem: 1
|
||||
m_ExportAsGoogleAndroidProject: 0
|
||||
m_DebugSymbolLevel: 1
|
||||
m_DebugSymbolFormat: 5
|
||||
m_CurrentDeploymentTargetId: __builtin__target_default
|
||||
m_BuildType: 2
|
||||
m_LinkTimeOptimization: 0
|
||||
m_BuildAppBundle: 0
|
||||
m_IPAddressToConnect:
|
||||
m_SymlinkSources: 0
|
||||
8
Assets/Settings/Build Profiles/Android™ 1.asset.meta
Normal file
8
Assets/Settings/Build Profiles/Android™ 1.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9496285097e5d904da120cdcec6534dc
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
55
Assets/Settings/Build Profiles/Android™.asset
Normal file
55
Assets/Settings/Build Profiles/Android™.asset
Normal file
@@ -0,0 +1,55 @@
|
||||
%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: 15003, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_Name: "Android\u2122"
|
||||
m_EditorClassIdentifier: UnityEditor.dll::UnityEditor.Build.Profile.BuildProfile
|
||||
m_AssetVersion: 1
|
||||
m_BuildTarget: 13
|
||||
m_Subtarget: 0
|
||||
m_PlatformId: b9b35072a6f44c2e863f17467ea3dc13
|
||||
m_PlatformBuildProfile:
|
||||
rid: 4246746364202188844
|
||||
m_OverrideGlobalSceneList: 0
|
||||
m_Scenes: []
|
||||
m_ScriptingDefines: []
|
||||
m_PlayerSettingsYaml:
|
||||
m_Settings: []
|
||||
references:
|
||||
version: 2
|
||||
RefIds:
|
||||
- rid: 4246746364202188844
|
||||
type: {class: AndroidPlatformBuildSettings, ns: UnityEditor.Android, asm: UnityEditor.Android.Extensions}
|
||||
data:
|
||||
m_Development: 1
|
||||
m_ConnectProfiler: 0
|
||||
m_BuildWithDeepProfilingSupport: 0
|
||||
m_AllowDebugging: 0
|
||||
m_WaitForManagedDebugger: 0
|
||||
m_ManagedDebuggerFixedPort: 0
|
||||
m_ExplicitNullChecks: 0
|
||||
m_ExplicitDivideByZeroChecks: 0
|
||||
m_ExplicitArrayBoundsChecks: 0
|
||||
m_CompressionType: 2
|
||||
m_InstallInBuildFolder: 0
|
||||
m_InsightsSettingsContainer:
|
||||
m_BuildProfileEngineDiagnosticsState: 2
|
||||
m_BuildSubtarget: 0
|
||||
m_BuildSystem: 1
|
||||
m_ExportAsGoogleAndroidProject: 0
|
||||
m_DebugSymbolLevel: 4
|
||||
m_DebugSymbolFormat: 5
|
||||
m_CurrentDeploymentTargetId: __builtin__target_default
|
||||
m_BuildType: 1
|
||||
m_LinkTimeOptimization: 0
|
||||
m_BuildAppBundle: 0
|
||||
m_IPAddressToConnect:
|
||||
m_SymlinkSources: 0
|
||||
8
Assets/Settings/Build Profiles/Android™.asset.meta
Normal file
8
Assets/Settings/Build Profiles/Android™.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7f18313555a02cd48bc22d29d0f2ff55
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
49
Assets/Settings/Build Profiles/iOS.asset
Normal file
49
Assets/Settings/Build Profiles/iOS.asset
Normal file
@@ -0,0 +1,49 @@
|
||||
%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: 15003, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_Name: iOS
|
||||
m_EditorClassIdentifier: UnityEditor.dll::UnityEditor.Build.Profile.BuildProfile
|
||||
m_AssetVersion: 1
|
||||
m_BuildTarget: 9
|
||||
m_Subtarget: 0
|
||||
m_PlatformId: ad48d16a66894befa4d8181998c3cb09
|
||||
m_PlatformBuildProfile:
|
||||
rid: 4718407457732296746
|
||||
m_OverrideGlobalSceneList: 0
|
||||
m_Scenes: []
|
||||
m_ScriptingDefines:
|
||||
-
|
||||
m_PlayerSettingsYaml:
|
||||
m_Settings: []
|
||||
references:
|
||||
version: 2
|
||||
RefIds:
|
||||
- rid: 4718407457732296746
|
||||
type: {class: iOSPlatformSettings, ns: UnityEditor.iOS, asm: UnityEditor.iOS.Extensions}
|
||||
data:
|
||||
m_Development: 0
|
||||
m_ConnectProfiler: 0
|
||||
m_BuildWithDeepProfilingSupport: 0
|
||||
m_AllowDebugging: 0
|
||||
m_WaitForManagedDebugger: 0
|
||||
m_ManagedDebuggerFixedPort: 0
|
||||
m_ExplicitNullChecks: 0
|
||||
m_ExplicitDivideByZeroChecks: 0
|
||||
m_ExplicitArrayBoundsChecks: 0
|
||||
m_CompressionType: 0
|
||||
m_InstallInBuildFolder: 0
|
||||
m_InsightsSettingsContainer:
|
||||
m_BuildProfileEngineDiagnosticsState: 2
|
||||
m_iOSXcodeBuildConfig: 1
|
||||
m_SymlinkSources: 0
|
||||
m_PreferredXcode:
|
||||
m_SymlinkTrampoline: 0
|
||||
8
Assets/Settings/Build Profiles/iOS.asset.meta
Normal file
8
Assets/Settings/Build Profiles/iOS.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 18829ddd933a57c489872a4f1a3942e4
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Settings/DefaultVolumeProfile.asset.meta
Normal file
8
Assets/Settings/DefaultVolumeProfile.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 526aab55ceaf10142a59ee4d62fe8f42
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Settings/Mobile_RPAsset.asset.meta
Normal file
8
Assets/Settings/Mobile_RPAsset.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0e9d05516516cba48aff23bd436701ca
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Settings/Mobile_Renderer.asset.meta
Normal file
8
Assets/Settings/Mobile_Renderer.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e6ba5b26dda963e43beba7012129f6a5
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Settings/PC_RPAsset.asset.meta
Normal file
8
Assets/Settings/PC_RPAsset.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9c73e51f432aa184cb1408179eb09d3f
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Settings/PC_Renderer.asset.meta
Normal file
8
Assets/Settings/PC_Renderer.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1fe0ebf7f09ec7e4fa76e81c31b87dde
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Settings/SampleSceneProfile.asset.meta
Normal file
8
Assets/Settings/SampleSceneProfile.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3dc1b9d50da01394198653f975d9c13d
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7bfdf167f826294468ffbde02bb390f1
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/TutorialInfo.meta
Normal file
8
Assets/TutorialInfo.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2692316a8a73b434783a8c8c50c49ac0
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/TutorialInfo/Icons.meta
Normal file
8
Assets/TutorialInfo/Icons.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d8c6f31643437cf4fa0e66ec2ff9a2e2
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
117
Assets/TutorialInfo/Icons/URP.png.meta
Normal file
117
Assets/TutorialInfo/Icons/URP.png.meta
Normal file
@@ -0,0 +1,117 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 95952c7b1590baf479a484d39d256da9
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
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: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
7
Assets/TutorialInfo/Layout.wlt.meta
Normal file
7
Assets/TutorialInfo/Layout.wlt.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7717e22d410f9a444be1699f27f08476
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/TutorialInfo/Scripts.meta
Normal file
8
Assets/TutorialInfo/Scripts.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 478503718c5a2c449bf8efbdda9c5aa2
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/TutorialInfo/Scripts/Editor.meta
Normal file
8
Assets/TutorialInfo/Scripts/Editor.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ffed5da1f0e08a5409de9dfef22c21f3
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
2
Assets/TutorialInfo/Scripts/Editor/ReadmeEditor.cs.meta
Normal file
2
Assets/TutorialInfo/Scripts/Editor/ReadmeEditor.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 84b2aaf916697844694b8831472d3e0e
|
||||
2
Assets/TutorialInfo/Scripts/Readme.cs.meta
Normal file
2
Assets/TutorialInfo/Scripts/Readme.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bd183dd179558504ab1767087b1efc32
|
||||
BIN
Assets/Untitled.blend1
Normal file
BIN
Assets/Untitled.blend1
Normal file
Binary file not shown.
7
Assets/Untitled.blend1.meta
Normal file
7
Assets/Untitled.blend1.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8a3ae6902f1c0f640a60306c36bf7976
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Untitled.stl
Normal file
BIN
Assets/Untitled.stl
Normal file
Binary file not shown.
7
Assets/Untitled.stl.meta
Normal file
7
Assets/Untitled.stl.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2e89477d2c2cb534988b1a3912bf69dd
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,23 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 26709d992d8a99b4791083f116c56a36
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 8
|
||||
defaultSettings:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
348
Assets/dd.unity
Normal file
348
Assets/dd.unity
Normal file
@@ -0,0 +1,348 @@
|
||||
%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: 10
|
||||
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.212, g: 0.227, b: 0.259, a: 1}
|
||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
||||
m_AmbientIntensity: 1
|
||||
m_AmbientMode: 0
|
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 13
|
||||
m_BakeOnSceneLoad: 0
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_EnvironmentLightingMode: 0
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 12
|
||||
m_Resolution: 2
|
||||
m_BakeResolution: 40
|
||||
m_AtlasSize: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAmbientOcclusion: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 2
|
||||
m_BakeBackend: 1
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 512
|
||||
m_PVRBounces: 2
|
||||
m_PVREnvironmentSampleCount: 256
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_PVRFilteringMode: 1
|
||||
m_PVRDenoiserTypeDirect: 1
|
||||
m_PVRDenoiserTypeIndirect: 1
|
||||
m_PVRDenoiserTypeAO: 1
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVREnvironmentMIS: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 1
|
||||
m_PVRFilteringGaussRadiusAO: 1
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_LightingSettings: {fileID: 0}
|
||||
--- !u!196 &4
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 3
|
||||
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
|
||||
buildHeightMesh: 0
|
||||
maxJobWorkers: 0
|
||||
preserveTilesOutsideBounds: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &871248414
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 871248415}
|
||||
m_Layer: 0
|
||||
m_Name: gamemanager
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &871248415
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 871248414}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0.27, y: 0, z: 0.21026}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1078774431
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1078774434}
|
||||
- component: {fileID: 1078774433}
|
||||
- component: {fileID: 1078774432}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!81 &1078774432
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1078774431}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &1078774433
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1078774431}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 1
|
||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_Iso: 200
|
||||
m_ShutterSpeed: 0.005
|
||||
m_Aperture: 16
|
||||
m_FocusDistance: 10
|
||||
m_FocalLength: 50
|
||||
m_BladeCount: 5
|
||||
m_Curvature: {x: 2, y: 11}
|
||||
m_BarrelClipping: 0.25
|
||||
m_Anamorphism: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 0
|
||||
orthographic size: 5
|
||||
m_Depth: -1
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 1
|
||||
m_AllowMSAA: 1
|
||||
m_AllowDynamicResolution: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
--- !u!4 &1078774434
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1078774431}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 1, z: -10}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1757180458
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1757180460}
|
||||
- component: {fileID: 1757180459}
|
||||
m_Layer: 0
|
||||
m_Name: Directional Light
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!108 &1757180459
|
||||
Light:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1757180458}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 11
|
||||
m_Type: 1
|
||||
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
|
||||
m_Intensity: 1
|
||||
m_Range: 10
|
||||
m_SpotAngle: 30
|
||||
m_InnerSpotAngle: 21.80208
|
||||
m_CookieSize: 10
|
||||
m_Shadows:
|
||||
m_Type: 2
|
||||
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: 1
|
||||
m_ColorTemperature: 6570
|
||||
m_UseColorTemperature: 0
|
||||
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_UseBoundingSphereOverride: 0
|
||||
m_UseViewFrustumForShadowCasterCull: 1
|
||||
m_ForceVisible: 0
|
||||
m_ShadowRadius: 0
|
||||
m_ShadowAngle: 0
|
||||
m_LightUnit: 1
|
||||
m_LuxAtDistance: 1
|
||||
m_EnableSpotReflector: 1
|
||||
--- !u!4 &1757180460
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1757180458}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
|
||||
m_LocalPosition: {x: 0, y: 3, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Roots:
|
||||
- {fileID: 1078774434}
|
||||
- {fileID: 1757180460}
|
||||
- {fileID: 871248415}
|
||||
7
Assets/dd.unity.meta
Normal file
7
Assets/dd.unity.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8f9e944b2f23a444588ce2e4ac78b0f0
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/koulickaone.blend1
Normal file
BIN
Assets/koulickaone.blend1
Normal file
Binary file not shown.
7
Assets/koulickaone.blend1.meta
Normal file
7
Assets/koulickaone.blend1.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 74379ac554348f84c8d3abeb440b79b9
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/koulickaone.fbx
Normal file
BIN
Assets/koulickaone.fbx
Normal file
Binary file not shown.
110
Assets/koulickaone.fbx.meta
Normal file
110
Assets/koulickaone.fbx.meta
Normal file
@@ -0,0 +1,110 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7fd80bd46d706b042a137593bf706d58
|
||||
ModelImporter:
|
||||
serializedVersion: 24200
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
materials:
|
||||
materialImportMode: 2
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
removeConstantScaleCurves: 0
|
||||
motionNodeName:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 1
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations: []
|
||||
isReadable: 0
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importPhysicalCameras: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
nodeNameCollisionStrategy: 1
|
||||
fileIdsGeneration: 2
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 0
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
optimizeBones: 1
|
||||
generateMeshLods: 0
|
||||
meshLodGenerationFlags: 0
|
||||
maximumMeshLod: -1
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 1
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
strictVertexDataChecks: 0
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human: []
|
||||
skeleton: []
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
globalScale: 1
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 0
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 2
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 0
|
||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||
importBlendShapeDeformPercent: 1
|
||||
remapMaterialsIfMaterialImportModeIsNone: 0
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
1047
Assets/pojekt.unity
Normal file
1047
Assets/pojekt.unity
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/pojekt.unity.meta
Normal file
7
Assets/pojekt.unity.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f01e25b5a8e60224fa8643bf4f074a71
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
2909
CODE_EXPLANATION.md
Normal file
2909
CODE_EXPLANATION.md
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Dancing triangle 1 Hour [YB3yHfqdw3Y].mp3
Normal file
BIN
Dancing triangle 1 Hour [YB3yHfqdw3Y].mp3
Normal file
Binary file not shown.
39
Packages/manifest.json
Normal file
39
Packages/manifest.json
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"com.unity.textmeshpro": "4.0.0",
|
||||
"com.unity.ugui": "2.0.0",
|
||||
"com.unity.multiplayer.center": "1.0.0",
|
||||
"com.unity.modules.accessibility": "1.0.0",
|
||||
"com.unity.modules.ai": "1.0.0",
|
||||
"com.unity.modules.androidjni": "1.0.0",
|
||||
"com.unity.modules.animation": "1.0.0",
|
||||
"com.unity.modules.assetbundle": "1.0.0",
|
||||
"com.unity.modules.audio": "1.0.0",
|
||||
"com.unity.modules.cloth": "1.0.0",
|
||||
"com.unity.modules.director": "1.0.0",
|
||||
"com.unity.modules.imageconversion": "1.0.0",
|
||||
"com.unity.modules.imgui": "1.0.0",
|
||||
"com.unity.modules.jsonserialize": "1.0.0",
|
||||
"com.unity.modules.particlesystem": "1.0.0",
|
||||
"com.unity.modules.physics": "1.0.0",
|
||||
"com.unity.modules.physics2d": "1.0.0",
|
||||
"com.unity.modules.screencapture": "1.0.0",
|
||||
"com.unity.modules.terrain": "1.0.0",
|
||||
"com.unity.modules.terrainphysics": "1.0.0",
|
||||
"com.unity.modules.tilemap": "1.0.0",
|
||||
"com.unity.modules.ui": "1.0.0",
|
||||
"com.unity.modules.uielements": "1.0.0",
|
||||
"com.unity.modules.umbra": "1.0.0",
|
||||
"com.unity.modules.unityanalytics": "1.0.0",
|
||||
"com.unity.modules.unitywebrequest": "1.0.0",
|
||||
"com.unity.modules.unitywebrequestassetbundle": "1.0.0",
|
||||
"com.unity.modules.unitywebrequestaudio": "1.0.0",
|
||||
"com.unity.modules.unitywebrequesttexture": "1.0.0",
|
||||
"com.unity.modules.unitywebrequestwww": "1.0.0",
|
||||
"com.unity.modules.vehicles": "1.0.0",
|
||||
"com.unity.modules.video": "1.0.0",
|
||||
"com.unity.modules.vr": "1.0.0",
|
||||
"com.unity.modules.wind": "1.0.0",
|
||||
"com.unity.modules.xr": "1.0.0"
|
||||
}
|
||||
}
|
||||
286
Packages/packages-lock.json
Normal file
286
Packages/packages-lock.json
Normal file
@@ -0,0 +1,286 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"com.unity.multiplayer.center": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.uielements": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.textmeshpro": {
|
||||
"version": "5.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.ugui": "2.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.ugui": {
|
||||
"version": "2.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.ui": "1.0.0",
|
||||
"com.unity.modules.imgui": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.accessibility": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.ai": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.androidjni": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.animation": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.assetbundle": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.audio": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.cloth": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.physics": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.director": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.audio": "1.0.0",
|
||||
"com.unity.modules.animation": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.hierarchycore": {
|
||||
"version": "1.0.0",
|
||||
"depth": 1,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.imageconversion": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.imgui": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.jsonserialize": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.particlesystem": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.physics": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.physics2d": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.screencapture": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.imageconversion": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.subsystems": {
|
||||
"version": "1.0.0",
|
||||
"depth": 1,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.jsonserialize": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.terrain": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.terrainphysics": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.physics": "1.0.0",
|
||||
"com.unity.modules.terrain": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.tilemap": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.physics2d": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.ui": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.uielements": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.ui": "1.0.0",
|
||||
"com.unity.modules.imgui": "1.0.0",
|
||||
"com.unity.modules.jsonserialize": "1.0.0",
|
||||
"com.unity.modules.hierarchycore": "1.0.0",
|
||||
"com.unity.modules.physics": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.umbra": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.unityanalytics": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.unitywebrequest": "1.0.0",
|
||||
"com.unity.modules.jsonserialize": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.unitywebrequest": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.unitywebrequestassetbundle": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.assetbundle": "1.0.0",
|
||||
"com.unity.modules.unitywebrequest": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.unitywebrequestaudio": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.unitywebrequest": "1.0.0",
|
||||
"com.unity.modules.audio": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.unitywebrequesttexture": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.unitywebrequest": "1.0.0",
|
||||
"com.unity.modules.imageconversion": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.unitywebrequestwww": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.unitywebrequest": "1.0.0",
|
||||
"com.unity.modules.unitywebrequestassetbundle": "1.0.0",
|
||||
"com.unity.modules.unitywebrequestaudio": "1.0.0",
|
||||
"com.unity.modules.audio": "1.0.0",
|
||||
"com.unity.modules.assetbundle": "1.0.0",
|
||||
"com.unity.modules.imageconversion": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.vehicles": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.physics": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.video": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.audio": "1.0.0",
|
||||
"com.unity.modules.ui": "1.0.0",
|
||||
"com.unity.modules.unitywebrequest": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.vr": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.jsonserialize": "1.0.0",
|
||||
"com.unity.modules.physics": "1.0.0",
|
||||
"com.unity.modules.xr": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.wind": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.xr": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.physics": "1.0.0",
|
||||
"com.unity.modules.jsonserialize": "1.0.0",
|
||||
"com.unity.modules.subsystems": "1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,10 +3,11 @@
|
||||
--- !u!55 &1
|
||||
PhysicsManager:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 13
|
||||
m_Gravity: {x: 0, y: -9.81, z: 0}
|
||||
serializedVersion: 20
|
||||
m_Gravity: {x: 0, y: -20, z: 0}
|
||||
m_DefaultMaterial: {fileID: 0}
|
||||
m_BounceThreshold: 2
|
||||
m_DefaultMaxDepenetrationVelocity: 10
|
||||
m_SleepThreshold: 0.005
|
||||
m_DefaultContactOffset: 0.01
|
||||
m_DefaultSolverIterations: 6
|
||||
@@ -16,11 +17,11 @@ PhysicsManager:
|
||||
m_EnableAdaptiveForce: 0
|
||||
m_ClothInterCollisionDistance: 0.1
|
||||
m_ClothInterCollisionStiffness: 0.2
|
||||
m_ContactsGeneration: 1
|
||||
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
m_AutoSimulation: 1
|
||||
m_SimulationMode: 0
|
||||
m_AutoSyncTransforms: 0
|
||||
m_ReuseCollisionCallbacks: 1
|
||||
m_InvokeCollisionCallbacks: 1
|
||||
m_ClothInterCollisionSettingsToggle: 0
|
||||
m_ClothGravity: {x: 0, y: -9.81, z: 0}
|
||||
m_ContactPairsMode: 0
|
||||
@@ -31,6 +32,10 @@ PhysicsManager:
|
||||
m_WorldSubdivisions: 8
|
||||
m_FrictionType: 0
|
||||
m_EnableEnhancedDeterminism: 0
|
||||
m_EnableUnifiedHeightmaps: 1
|
||||
m_ImprovedPatchFriction: 0
|
||||
m_GenerateOnTriggerStayEvents: 1
|
||||
m_SolverType: 0
|
||||
m_DefaultMaxAngularSpeed: 50
|
||||
m_ScratchBufferChunkCount: 4
|
||||
m_CurrentBackendId: 4072204805
|
||||
m_FastMotionThreshold: 3.4028235e+38
|
||||
|
||||
@@ -5,9 +5,12 @@ EditorBuildSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Scenes:
|
||||
- enabled: 1
|
||||
- enabled: 0
|
||||
path: Assets/Scenes/SampleScene.unity
|
||||
guid: 99c9720ab356a0642a771bea13969a05
|
||||
guid: 6a18d9b328b6a794da5d050347950362
|
||||
- enabled: 1
|
||||
path: Assets/pojekt.unity
|
||||
guid: f01e25b5a8e60224fa8643bf4f074a71
|
||||
m_configObjects:
|
||||
com.unity.input.settings.actions: {fileID: -944628639613478452, guid: 052faaac586de48259a63d0c4782560b, type: 3}
|
||||
m_UseUCBPForAssetBundles: 0
|
||||
|
||||
@@ -8,7 +8,7 @@ PlayerSettings:
|
||||
AndroidProfiler: 0
|
||||
AndroidFilterTouchesWhenObscured: 0
|
||||
AndroidEnableSustainedPerformanceMode: 0
|
||||
defaultScreenOrientation: 4
|
||||
defaultScreenOrientation: 0
|
||||
targetDevice: 2
|
||||
useOnDemandResources: 0
|
||||
accelerometerFrequency: 60
|
||||
@@ -161,7 +161,7 @@ PlayerSettings:
|
||||
m_ColorGamuts: 00000000
|
||||
targetPixelDensity: 30
|
||||
resolutionScalingMode: 0
|
||||
resetResolutionOnWindowResize: 0
|
||||
resetResolutionOnWindowResize: 1
|
||||
androidSupportedAspectRatio: 1
|
||||
androidMaxAspectRatio: 2.4
|
||||
androidMinAspectRatio: 1
|
||||
@@ -558,13 +558,16 @@ PlayerSettings:
|
||||
- serializedVersion: 3
|
||||
m_BuildTarget: Android
|
||||
m_Formats: 03000000
|
||||
- serializedVersion: 3
|
||||
m_BuildTarget: iOS
|
||||
m_Formats: 03000000
|
||||
playModeTestRunnerEnabled: 0
|
||||
runPlayModeTestAsEditModeTest: 0
|
||||
actionOnDotNetUnhandledException: 1
|
||||
editorGfxJobOverride: 1
|
||||
enableInternalProfiler: 0
|
||||
logObjCUncaughtExceptions: 1
|
||||
enableCrashReportAPI: 0
|
||||
enableCrashReportAPI: 1
|
||||
cameraUsageDescription:
|
||||
locationUsageDescription:
|
||||
microphoneUsageDescription:
|
||||
@@ -920,7 +923,7 @@ PlayerSettings:
|
||||
qnxGraphicConfPath:
|
||||
apiCompatibilityLevel: 6
|
||||
captureStartupLogs: {}
|
||||
activeInputHandler: 1
|
||||
activeInputHandler: 0
|
||||
windowsGamepadBackendHint: 0
|
||||
cloudProjectId: 8feb5b9d-fe4c-4652-bc44-283fb1a29892
|
||||
framebufferDepthMemorylessMode: 0
|
||||
|
||||
121
ProjectSettings/SceneTemplateSettings.json
Normal file
121
ProjectSettings/SceneTemplateSettings.json
Normal file
@@ -0,0 +1,121 @@
|
||||
{
|
||||
"templatePinStates": [],
|
||||
"dependencyTypeInfos": [
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEngine.AnimationClip",
|
||||
"defaultInstantiationMode": 0
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEditor.Animations.AnimatorController",
|
||||
"defaultInstantiationMode": 0
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEngine.AnimatorOverrideController",
|
||||
"defaultInstantiationMode": 0
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEditor.Audio.AudioMixerController",
|
||||
"defaultInstantiationMode": 0
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEngine.ComputeShader",
|
||||
"defaultInstantiationMode": 1
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEngine.Cubemap",
|
||||
"defaultInstantiationMode": 0
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEngine.GameObject",
|
||||
"defaultInstantiationMode": 0
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEditor.LightingDataAsset",
|
||||
"defaultInstantiationMode": 0
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEngine.LightingSettings",
|
||||
"defaultInstantiationMode": 0
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEngine.Material",
|
||||
"defaultInstantiationMode": 0
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEditor.MonoScript",
|
||||
"defaultInstantiationMode": 1
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEngine.PhysicsMaterial",
|
||||
"defaultInstantiationMode": 0
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEngine.PhysicsMaterial2D",
|
||||
"defaultInstantiationMode": 0
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile",
|
||||
"defaultInstantiationMode": 0
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEngine.Rendering.PostProcessing.PostProcessResources",
|
||||
"defaultInstantiationMode": 0
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEngine.Rendering.VolumeProfile",
|
||||
"defaultInstantiationMode": 0
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEditor.SceneAsset",
|
||||
"defaultInstantiationMode": 1
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEngine.Shader",
|
||||
"defaultInstantiationMode": 1
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEngine.ShaderVariantCollection",
|
||||
"defaultInstantiationMode": 1
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEngine.Texture",
|
||||
"defaultInstantiationMode": 0
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEngine.Texture2D",
|
||||
"defaultInstantiationMode": 0
|
||||
},
|
||||
{
|
||||
"userAdded": false,
|
||||
"type": "UnityEngine.Timeline.TimelineAsset",
|
||||
"defaultInstantiationMode": 0
|
||||
}
|
||||
],
|
||||
"defaultDependencyTypeInfo": {
|
||||
"userAdded": false,
|
||||
"type": "<default_scene_template_dependencies>",
|
||||
"defaultInstantiationMode": 1
|
||||
},
|
||||
"newSceneOverride": 0
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
UnityConnectSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 1
|
||||
m_Enabled: 0
|
||||
m_Enabled: 1
|
||||
m_TestMode: 0
|
||||
m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
|
||||
m_EventUrl: https://cdp.cloud.unity3d.com/v1/events
|
||||
|
||||
719
SETUP_GUIDE.md
Normal file
719
SETUP_GUIDE.md
Normal file
@@ -0,0 +1,719 @@
|
||||
# GYROSCOPE TILT GAME - COMPLETE SETUP GUIDE
|
||||
|
||||
> **Unity 6 (6000.x) Specific Guide**
|
||||
> This guide uses Unity 6's new **Build Profiles** system (replaces old Build Settings).
|
||||
> If you're on Unity 2022 or older, some menu names will be different.
|
||||
|
||||
## 📋 TABLE OF CONTENTS
|
||||
1. [Overview](#overview)
|
||||
2. [Unity Scene Setup](#unity-scene-setup)
|
||||
3. [Build Profiles](#build-profiles-unity-6)
|
||||
4. [Testing on Device](#testing-on-device)
|
||||
5. [How to Play](#how-to-play)
|
||||
6. [Customization](#customization)
|
||||
7. [Troubleshooting](#troubleshooting)
|
||||
|
||||
---
|
||||
|
||||
## 📖 OVERVIEW
|
||||
|
||||
### What This Game Does:
|
||||
- Detects when you tilt your phone around the Z-axis (portrait to landscape)
|
||||
- Counts successful tilts (crossing -45° or +45°)
|
||||
- Tracks time spent holding tilt position
|
||||
- Hybrid scoring: Complete 10 tilts AND hold for 15 seconds total
|
||||
|
||||
### Scripts Included:
|
||||
1. **GyroTiltController.cs** - Handles all gyroscope input, calibration, and tilt detection
|
||||
2. **TiltGameManagerAutoStart.cs** - Game logic with auto-start (no UI needed)
|
||||
|
||||
### What You'll See:
|
||||
- Debug text overlay showing angles, score, and objectives
|
||||
- Optional 3D cube that rotates with your phone
|
||||
- Game auto-starts after 2 seconds
|
||||
- Game auto-restarts after completion
|
||||
|
||||
---
|
||||
|
||||
## 🎮 UNITY SCENE SETUP
|
||||
|
||||
### STEP 1: Create GameManager
|
||||
|
||||
1. **Create Empty GameObject:**
|
||||
- Right-click in **Hierarchy** → **Create Empty**
|
||||
- Name it: `GameManager`
|
||||
- Position: `(0, 0, 0)`
|
||||
|
||||
2. **Add GyroTiltController Script:**
|
||||
- Select `GameManager` in Hierarchy
|
||||
- In Inspector, click **Add Component**
|
||||
- Type: `GyroTiltController`
|
||||
- Press Enter
|
||||
|
||||
3. **Configure GyroTiltController:**
|
||||
```
|
||||
✓ Enable Gyro On Start: CHECKED
|
||||
Smoothing: 0.5
|
||||
Left Tilt Threshold: -45
|
||||
Right Tilt Threshold: 45
|
||||
Deadzone Angle: 10
|
||||
Visual Target: (leave empty for now - we'll add in Step 2)
|
||||
Visual Rotation Multiplier: 1
|
||||
```
|
||||
|
||||
4. **Add TiltGameManagerAutoStart Script:**
|
||||
- With `GameManager` still selected
|
||||
- Click **Add Component**
|
||||
- Type: `TiltGameManagerAutoStart`
|
||||
- Press Enter
|
||||
|
||||
5. **Configure TiltGameManagerAutoStart:**
|
||||
```
|
||||
Gyro Controller: [Drag "GameManager" from Hierarchy here]
|
||||
Game Duration: 30
|
||||
Target Tilt Count: 10
|
||||
Target Hold Time: 15
|
||||
Points Per Tilt: 10
|
||||
Points Per Second Hold: 5
|
||||
Completion Bonus: 100
|
||||
Auto Start Delay: 2
|
||||
```
|
||||
|
||||
**IMPORTANT:** You MUST drag the `GameManager` GameObject into the "Gyro Controller" field!
|
||||
|
||||
---
|
||||
|
||||
### STEP 2: Create Visual Indicator (Optional but Recommended)
|
||||
|
||||
This creates a 3D object that rotates when you tilt your phone.
|
||||
|
||||
1. **Create 3D Cube:**
|
||||
- Right-click Hierarchy → **3D Object** → **Cube**
|
||||
- Name it: `TiltIndicator`
|
||||
|
||||
2. **Position It:**
|
||||
- Select `TiltIndicator`
|
||||
- In Inspector, set Transform:
|
||||
```
|
||||
Position: X=0, Y=0, Z=5 (in front of camera)
|
||||
Rotation: X=0, Y=0, Z=0
|
||||
Scale: X=0.5, Y=2, Z=0.1 (makes it arrow-like)
|
||||
```
|
||||
|
||||
3. **Optional - Add Color:**
|
||||
- In Project window: Right-click → **Create** → **Material**
|
||||
- Name: `TiltMaterial`
|
||||
- Select it, set Albedo color to bright cyan or any color you like
|
||||
- Drag `TiltMaterial` onto `TiltIndicator` in Scene view
|
||||
|
||||
4. **Connect to GyroTiltController:**
|
||||
- Select `GameManager` in Hierarchy
|
||||
- Find the **GyroTiltController** component in Inspector
|
||||
- Drag `TiltIndicator` from Hierarchy into the **Visual Target** field
|
||||
- Now the cube will rotate with your phone!
|
||||
|
||||
---
|
||||
|
||||
### STEP 3: Verify Camera Exists
|
||||
|
||||
- You should already have **Main Camera** in your scene
|
||||
- If not: GameObject → Camera
|
||||
- Default position is fine: `(0, 1, -10)`
|
||||
|
||||
---
|
||||
|
||||
### STEP 4: Save Your Scene
|
||||
|
||||
1. **File** → **Save As**
|
||||
2. Name: `TiltGame`
|
||||
3. Save location: `Assets/Scenes/TiltGame.unity`
|
||||
|
||||
---
|
||||
|
||||
### ✅ FINAL HIERARCHY CHECK
|
||||
|
||||
Your Hierarchy should look like this:
|
||||
|
||||
```
|
||||
Scene: TiltGame
|
||||
├── Main Camera
|
||||
├── Directional Light (default)
|
||||
├── GameManager
|
||||
│ ├── GyroTiltController (script component)
|
||||
│ └── TiltGameManagerAutoStart (script component)
|
||||
└── TiltIndicator (Cube)
|
||||
```
|
||||
|
||||
That's it! Only 3-4 GameObjects needed.
|
||||
|
||||
---
|
||||
|
||||
## 📱 BUILD PROFILES (Unity 6)
|
||||
|
||||
Unity 6 uses **Build Profiles** instead of the old Build Settings window.
|
||||
|
||||
### STEP 1: Open Build Profiles Window
|
||||
|
||||
1. **File** → **Build Profiles**
|
||||
2. The Build Profiles window opens (replaces old Build Settings)
|
||||
|
||||
---
|
||||
|
||||
### STEP 2: Create Android Build Profile
|
||||
|
||||
1. In Build Profiles window, click **Create Build Profile** (or the **+** button)
|
||||
2. Select **Android** from the list
|
||||
3. The Android build profile is created and activated automatically
|
||||
|
||||
**For iOS (if targeting iPhone):**
|
||||
1. Click **+** button in Build Profiles window
|
||||
2. Select **iOS**
|
||||
3. You'll need a Mac and Xcode for the actual build
|
||||
|
||||
---
|
||||
|
||||
### STEP 3: Add Scene to Build Profile
|
||||
|
||||
1. In Build Profiles window, make sure your **Android** profile is selected (highlighted)
|
||||
2. Look for the **Scenes in Build** section
|
||||
3. Click **Add Open Scenes** button (or drag scene from Project window)
|
||||
4. You should see `Scenes/TiltGame` in the list with a checkmark
|
||||
|
||||
---
|
||||
|
||||
### STEP 4: Configure Player Settings
|
||||
|
||||
1. In Build Profiles window, with Android profile selected, find the **Player Settings** section
|
||||
2. Or go to: **Edit** → **Project Settings** → **Player** → **Android tab** (Android icon)
|
||||
3. Configure these settings:
|
||||
|
||||
```
|
||||
Company Name: YourName
|
||||
Product Name: TiltGame
|
||||
Version: 1.0
|
||||
|
||||
Resolution and Presentation:
|
||||
Default Orientation: Portrait
|
||||
(or Auto Rotation if you want flexibility)
|
||||
Allowed Orientations for Auto Rotation:
|
||||
✓ Portrait
|
||||
✓ Landscape Left
|
||||
✓ Landscape Right
|
||||
|
||||
Other Settings (scroll down):
|
||||
Minimum API Level: Android 7.0 'Nougat' (API Level 24) or higher
|
||||
Target API Level: Automatic (highest installed)
|
||||
|
||||
Scripting Backend: IL2CPP (recommended) or Mono
|
||||
ARM64: ✓ (required for Google Play)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### STEP 5: Build to Device
|
||||
|
||||
**Option A: Build And Run (Recommended)**
|
||||
|
||||
1. **Enable USB Debugging on your Android phone:**
|
||||
- Settings → About Phone → Tap "Build Number" 7 times
|
||||
- Settings → Developer Options → Enable "USB Debugging"
|
||||
|
||||
2. **Connect phone via USB cable**
|
||||
|
||||
3. **In Unity:**
|
||||
- Make sure Android build profile is **active** (selected in Build Profiles window)
|
||||
- Click **Build and Run** button in Build Profiles window
|
||||
- Choose save location for APK (e.g., `Builds/TiltGame.apk`)
|
||||
- Click Save
|
||||
- Wait for build (2-10 minutes first time)
|
||||
- App automatically installs and launches on phone!
|
||||
|
||||
**Option B: Build APK Only**
|
||||
|
||||
1. In Build Profiles window, click **Build** button
|
||||
2. Choose save location (e.g., `Builds/TiltGame.apk`)
|
||||
3. Click Save and wait for build to complete
|
||||
4. Transfer APK to phone (Google Drive, email, USB, etc.)
|
||||
5. Install manually on phone
|
||||
|
||||
**Option C: Quick Build (Unity 6 Feature)**
|
||||
|
||||
1. Use keyboard shortcut: **Ctrl+B** (Windows) or **Cmd+B** (Mac)
|
||||
2. Builds to the last used location automatically
|
||||
3. Super fast for testing iterations!
|
||||
|
||||
---
|
||||
|
||||
### Unity 6 Build Profiles - What's New?
|
||||
|
||||
Unity 6's Build Profiles are better than old Build Settings:
|
||||
|
||||
✅ **Multiple profiles:** Create Android, iOS, and PC builds without switching platforms constantly
|
||||
✅ **Faster switching:** No more waiting 5 minutes to switch platforms
|
||||
✅ **Per-profile settings:** Different scenes/settings for each platform
|
||||
✅ **Keyboard shortcuts:** Ctrl+B for quick builds
|
||||
|
||||
**Example workflow:**
|
||||
1. Create Android profile (for phone testing)
|
||||
2. Create Standalone profile (for PC testing)
|
||||
3. Switch between them instantly - no re-importing!
|
||||
|
||||
---
|
||||
|
||||
## 🎮 HOW TO PLAY
|
||||
|
||||
### When You Launch the App:
|
||||
|
||||
#### **First 2 Seconds:**
|
||||
```
|
||||
Debug text shows:
|
||||
"Game starting soon..."
|
||||
"Hold device and press CALIBRATE if needed"
|
||||
|
||||
Raw Z: 12.3° ← Your current tilt angle (raw sensor data)
|
||||
Smoothed Z: 11.8° ← Filtered angle (smoother, less jittery)
|
||||
State: Neutral ← Current tilt state
|
||||
```
|
||||
|
||||
**What to do:** Hold your phone in a comfortable position (portrait, landscape, whatever you prefer)
|
||||
|
||||
---
|
||||
|
||||
#### **Game Starts (After 2 Seconds):**
|
||||
```
|
||||
GAME ACTIVE
|
||||
Time: 30.0s ← Countdown timer
|
||||
Score: 0 ← Your current score
|
||||
Tilts: 0/10 ← Tilt count / target
|
||||
Hold: 0.0s/15s ← Hold time / target
|
||||
```
|
||||
|
||||
**Objective:** Complete BOTH goals before time runs out:
|
||||
- ✅ Cross tilt threshold 10 times (left or right)
|
||||
- ✅ Hold tilted position for 15 seconds total (cumulative)
|
||||
|
||||
---
|
||||
|
||||
#### **How to Score Points:**
|
||||
|
||||
1. **Tilt Scoring (+10 points each):**
|
||||
- Tilt phone LEFT past -45° → triggers "TILT LEFT"
|
||||
- Tilt phone RIGHT past +45° → triggers "TILT RIGHT"
|
||||
- Each crossing = 1 tilt counted
|
||||
- Console shows: `>>> TILT #1! +10 points`
|
||||
|
||||
2. **Hold Time Scoring (+5 points per second):**
|
||||
- Stay tilted past threshold (left OR right)
|
||||
- Timer accumulates while holding
|
||||
- Points added continuously: `+5, +10, +15...`
|
||||
|
||||
3. **Completion Bonus (+100 points):**
|
||||
- Complete BOTH objectives before 30 seconds
|
||||
- Automatically awards 100 bonus points
|
||||
- Shows: `★★★ ALL OBJECTIVES COMPLETED! ★★★`
|
||||
|
||||
---
|
||||
|
||||
#### **Visual Feedback:**
|
||||
|
||||
- **Tilt Angle Number:** Updates in real-time as you tilt
|
||||
- **State Indicator:** Shows "Neutral", "TiltLeft", or "TiltRight"
|
||||
- **Cube Rotation:** The TiltIndicator cube rotates matching your phone tilt
|
||||
- **Score Counter:** Updates continuously
|
||||
- **Green Text:** Objectives turn green when completed
|
||||
|
||||
---
|
||||
|
||||
#### **Game Over:**
|
||||
```
|
||||
GAME OVER
|
||||
Final Score: 245
|
||||
Restarting in 5s...
|
||||
```
|
||||
|
||||
Game automatically restarts after 5 seconds!
|
||||
|
||||
---
|
||||
|
||||
### Controls Summary:
|
||||
|
||||
| Action | What Happens |
|
||||
|--------|--------------|
|
||||
| Tilt left (past -45°) | +1 tilt, +10 points, state = TiltLeft |
|
||||
| Tilt right (past +45°) | +1 tilt, +10 points, state = TiltRight |
|
||||
| Hold tilt position | Hold time increases, +5 pts/second |
|
||||
| Return to neutral | State = Neutral, hold time stops |
|
||||
| Complete objectives | Game ends, +100 bonus |
|
||||
| Time reaches 0s | Game ends, no bonus |
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ CUSTOMIZATION
|
||||
|
||||
### Make Game Easier/Harder:
|
||||
|
||||
Open Unity, select `GameManager`, modify these values:
|
||||
|
||||
**Easier:**
|
||||
```
|
||||
TiltGameManagerAutoStart:
|
||||
Game Duration: 45 (more time)
|
||||
Target Tilt Count: 5 (fewer tilts needed)
|
||||
Target Hold Time: 10 (less hold time needed)
|
||||
|
||||
GyroTiltController:
|
||||
Left Tilt Threshold: -30 (easier to trigger)
|
||||
Right Tilt Threshold: 30
|
||||
```
|
||||
|
||||
**Harder:**
|
||||
```
|
||||
TiltGameManagerAutoStart:
|
||||
Game Duration: 20 (less time)
|
||||
Target Tilt Count: 15 (more tilts needed)
|
||||
Target Hold Time: 20 (more hold time needed)
|
||||
|
||||
GyroTiltController:
|
||||
Left Tilt Threshold: -60 (harder to trigger)
|
||||
Right Tilt Threshold: 60
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Adjust Smoothing:
|
||||
|
||||
**Jittery/Jumpy rotation?**
|
||||
```
|
||||
GyroTiltController:
|
||||
Smoothing: 0.7-0.9 (more smoothing, less jitter)
|
||||
```
|
||||
|
||||
**Laggy/Slow response?**
|
||||
```
|
||||
GyroTiltController:
|
||||
Smoothing: 0.1-0.3 (less smoothing, faster response)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Change Scoring:
|
||||
|
||||
```
|
||||
TiltGameManagerAutoStart:
|
||||
Points Per Tilt: 20 (instead of 10)
|
||||
Points Per Second Hold: 10 (instead of 5)
|
||||
Completion Bonus: 500 (instead of 100)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Adjust Auto-Start Delay:
|
||||
|
||||
```
|
||||
TiltGameManagerAutoStart:
|
||||
Auto Start Delay: 5 (wait 5 seconds instead of 2)
|
||||
```
|
||||
|
||||
Set to `0` to start immediately!
|
||||
|
||||
---
|
||||
|
||||
### Change Game Duration:
|
||||
|
||||
```
|
||||
TiltGameManagerAutoStart:
|
||||
Game Duration: 60 (1 minute game)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 TROUBLESHOOTING
|
||||
|
||||
### Problem: "Gyroscope not supported"
|
||||
|
||||
**Cause:** Device doesn't have gyroscope sensor (rare on modern phones)
|
||||
|
||||
**Fix:**
|
||||
- Test on a different phone
|
||||
- Verify gyro exists: Install "Sensor Kinetics" app from Play Store
|
||||
- Most phones from 2015+ have gyroscope
|
||||
|
||||
---
|
||||
|
||||
### Problem: Tilt detection feels backwards
|
||||
|
||||
**Cause:** Different phone orientation than expected
|
||||
|
||||
**Fix Option 1 - Recalibrate:**
|
||||
- Hold phone in your preferred "neutral" position
|
||||
- (Future version will have calibrate button)
|
||||
|
||||
**Fix Option 2 - Swap thresholds in code:**
|
||||
```
|
||||
Left Tilt Threshold: 45
|
||||
Right Tilt Threshold: -45
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Problem: Cube doesn't rotate
|
||||
|
||||
**Cause:** Visual Target not assigned
|
||||
|
||||
**Fix:**
|
||||
1. Select `GameManager`
|
||||
2. Find `GyroTiltController` component
|
||||
3. Drag `TiltIndicator` into "Visual Target" field
|
||||
4. If field is grayed out, make sure TiltIndicator exists in Hierarchy
|
||||
|
||||
---
|
||||
|
||||
### Problem: No tilts detected when I tilt phone
|
||||
|
||||
**Cause 1:** Threshold too high
|
||||
```
|
||||
Solution: Lower thresholds to -30 / +30
|
||||
```
|
||||
|
||||
**Cause 2:** Wrong axis
|
||||
```
|
||||
Solution: Check you're tilting around Z-axis (portrait ↔ landscape)
|
||||
Not tilting forward/backward (that's X-axis)
|
||||
```
|
||||
|
||||
**Cause 3:** Inside deadzone
|
||||
```
|
||||
Solution: Lower deadzone from 10 to 5
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Problem: Game doesn't start
|
||||
|
||||
**Cause:** Gyro Controller reference missing
|
||||
|
||||
**Fix:**
|
||||
1. Select `GameManager`
|
||||
2. Find `TiltGameManagerAutoStart` component
|
||||
3. Make sure "Gyro Controller" field has `GameManager` assigned
|
||||
4. If it says "None", drag `GameManager` from Hierarchy into that field
|
||||
|
||||
---
|
||||
|
||||
### Problem: Compilation errors in Unity
|
||||
|
||||
**Cause:** TiltUI.cs or TiltGameManager.cs are active (they need TextMeshPro)
|
||||
|
||||
**Fix:**
|
||||
These files should be disabled (renamed to `.DISABLED` extension).
|
||||
Only these scripts should exist:
|
||||
- ✅ GyroTiltController.cs
|
||||
- ✅ TiltGameManagerAutoStart.cs
|
||||
|
||||
If you see TiltUI.cs, rename it to TiltUI.cs.DISABLED
|
||||
|
||||
---
|
||||
|
||||
### Problem: Gyro drifts over time
|
||||
|
||||
**Cause:** Gyroscope sensors have slight drift
|
||||
|
||||
**Fix:**
|
||||
- Calibration helps reset the drift
|
||||
- In current version, game auto-calibrates on start
|
||||
- Future: Add manual calibrate button
|
||||
|
||||
---
|
||||
|
||||
### Problem: Can't install APK on phone
|
||||
|
||||
**Cause:** "Install from unknown sources" disabled
|
||||
|
||||
**Fix:**
|
||||
1. Settings → Security
|
||||
2. Enable "Unknown Sources" or "Install Unknown Apps"
|
||||
3. Allow installation from your file manager app
|
||||
|
||||
---
|
||||
|
||||
### Problem: Screen auto-rotates during gameplay
|
||||
|
||||
**Cause:** Orientation set to Auto Rotation
|
||||
|
||||
**Fix:**
|
||||
- Unity: Player Settings → Default Orientation → Portrait
|
||||
- Or: Lock orientation in phone settings during gameplay
|
||||
|
||||
---
|
||||
|
||||
### Problem: Build fails / Unity crashes
|
||||
|
||||
**Solutions:**
|
||||
1. Close Unity, delete `Library` folder, reopen project
|
||||
2. Update Android SDK/NDK (Unity Hub → Installs → Add Modules)
|
||||
3. Lower graphics quality: Edit → Project Settings → Quality → Set to "Low"
|
||||
4. Check disk space (need ~5GB free)
|
||||
5. **Unity 6 specific:** Make sure Build Profile is active (highlighted in Build Profiles window)
|
||||
6. **Unity 6 specific:** Check that scene is in the Build Profile's "Scenes in Build" list
|
||||
|
||||
---
|
||||
|
||||
## 📊 UNDERSTANDING THE DEBUG TEXT
|
||||
|
||||
### Upper Section (Always Visible):
|
||||
```
|
||||
Raw Z: -23.4° ← Direct sensor reading (updates ~100 times/sec)
|
||||
Smoothed Z: -21.8° ← Filtered value (what game uses for detection)
|
||||
State: TiltLeft ← Current tilt state (Neutral/TiltLeft/TiltRight)
|
||||
```
|
||||
|
||||
**What the angles mean:**
|
||||
- `0°` = Neutral position (as calibrated)
|
||||
- Negative (-45°) = Tilted LEFT (counterclockwise)
|
||||
- Positive (+45°) = Tilted RIGHT (clockwise)
|
||||
- Range: -180° to +180°
|
||||
|
||||
---
|
||||
|
||||
### Lower Section (During Gameplay):
|
||||
```
|
||||
GAME ACTIVE ← Game state indicator
|
||||
Time: 18.3s ← Countdown (turns red below 10s)
|
||||
Score: 145 ← Current score (yellow)
|
||||
Tilts: 7/10 ← Progress (turns green when complete)
|
||||
Hold: 9.2s/15s ← Progress (turns green when complete)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 TIPS FOR BEST EXPERIENCE
|
||||
|
||||
1. **Calibrate at start:**
|
||||
- Hold phone comfortably when game starts
|
||||
- This becomes your "0 degrees" reference
|
||||
|
||||
2. **Smooth tilting:**
|
||||
- Tilt smoothly, not jerky
|
||||
- Cross the threshold clearly (go past -45° or +45°)
|
||||
|
||||
3. **Alternate left/right:**
|
||||
- Tilt left, back to center, tilt right, repeat
|
||||
- Gets tilts quickly while building hold time
|
||||
|
||||
4. **Hold at threshold:**
|
||||
- After tilting past threshold, hold position
|
||||
- Accumulates hold time while waiting to tilt back
|
||||
|
||||
5. **Watch the cube:**
|
||||
- Visual indicator helps you see current tilt
|
||||
- When cube is heavily tilted, you're in scoring zone
|
||||
|
||||
---
|
||||
|
||||
## 📝 GAME STRATEGY
|
||||
|
||||
### Beginner Strategy: "Slow and Steady"
|
||||
- Tilt left → hold 2 seconds → center
|
||||
- Tilt right → hold 2 seconds → center
|
||||
- Repeat 10 times
|
||||
- Time: ~25-30 seconds (good if you're methodical)
|
||||
|
||||
### Advanced Strategy: "Fast Tilts"
|
||||
- Rapid tilts left-right-left-right (get to 10 tilts fast)
|
||||
- Then hold at either threshold for remaining hold time
|
||||
- Time: ~15-20 seconds (requires practice)
|
||||
|
||||
### Perfect Strategy: "Hybrid"
|
||||
- Tilt left → hold 1.5s
|
||||
- Tilt right → hold 1.5s
|
||||
- Repeat 10 times (10 tilts × 1.5s × 2 = 30s hold time!)
|
||||
- Completes both objectives simultaneously
|
||||
|
||||
---
|
||||
|
||||
## 📂 FILE STRUCTURE
|
||||
|
||||
```
|
||||
Assets/
|
||||
├── Scenes/
|
||||
│ └── TiltGame.unity (Your game scene)
|
||||
├── Scripts/
|
||||
│ ├── GyroTiltController.cs (Gyro input handler)
|
||||
│ └── TiltGameManagerAutoStart.cs (Game logic)
|
||||
└── Materials/ (optional)
|
||||
└── TiltMaterial.mat (Color for cube)
|
||||
|
||||
Builds/
|
||||
└── TiltGame.apk (Android build output)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 QUICK START CHECKLIST
|
||||
|
||||
Before building, verify:
|
||||
|
||||
- [ ] Scene saved as `TiltGame.unity`
|
||||
- [ ] `GameManager` exists in Hierarchy
|
||||
- [ ] `GameManager` has 2 scripts: GyroTiltController + TiltGameManagerAutoStart
|
||||
- [ ] `TiltGameManagerAutoStart` → Gyro Controller field = `GameManager`
|
||||
- [ ] `TiltIndicator` (cube) exists
|
||||
- [ ] `TiltIndicator` assigned to GyroTiltController → Visual Target
|
||||
- [ ] Scene added to Build Profile
|
||||
- [ ] Android Build Profile created and active
|
||||
- [ ] Player Settings configured (Orientation, API Level)
|
||||
- [ ] Phone connected via USB (for Build And Run)
|
||||
- [ ] USB Debugging enabled on phone
|
||||
|
||||
---
|
||||
|
||||
## 🎓 NEXT STEPS / ENHANCEMENTS
|
||||
|
||||
Want to improve the game? Here are ideas:
|
||||
|
||||
### Easy Additions:
|
||||
- Add UI buttons (requires setting up TextMeshPro)
|
||||
- Add sound effects on tilt
|
||||
- Change cube to arrow 3D model
|
||||
- Add particle effects on successful tilt
|
||||
|
||||
### Medium Additions:
|
||||
- Add difficulty levels (Easy/Medium/Hard)
|
||||
- Add high score tracking (PlayerPrefs)
|
||||
- Add different game modes
|
||||
- Add vibration feedback on tilt
|
||||
|
||||
### Advanced Additions:
|
||||
- Online leaderboards
|
||||
- Multiple levels with increasing difficulty
|
||||
- Power-ups (2x points, slow time, etc.)
|
||||
- Tutorial sequence for first-time players
|
||||
- Settings menu (adjust thresholds, smoothing)
|
||||
|
||||
---
|
||||
|
||||
## 📞 NEED HELP?
|
||||
|
||||
If you encounter issues not covered in Troubleshooting:
|
||||
|
||||
1. Check Unity Console for error messages
|
||||
2. Verify all steps were followed exactly
|
||||
3. Try on a different Android device
|
||||
4. Rebuild after cleaning (delete Library folder)
|
||||
|
||||
---
|
||||
|
||||
**Created for Unity 6 (6000.2.8f1)**
|
||||
**Works on Android 7.0+ and iOS 11+**
|
||||
**Last Updated: 2025-11-15**
|
||||
|
||||
---
|
||||
|
||||
## 🎉 YOU'RE READY!
|
||||
|
||||
Follow the steps above and you'll have a fully working gyroscope tilt game.
|
||||
|
||||
**Estimated Setup Time:** 10-15 minutes
|
||||
**Estimated Build Time:** 5-10 minutes (first build)
|
||||
|
||||
Have fun tilting! 📱🎮
|
||||
Reference in New Issue
Block a user