2026-04-27 BGM 및 이스터에그
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
using TinyGiantStudio.Modules;
|
||||
using UnityEngine;
|
||||
|
||||
namespace TinyGiantStudio.Layout
|
||||
{
|
||||
// 1 = duration
|
||||
// 2 = position move curve
|
||||
|
||||
|
||||
[CreateAssetMenu(menuName = "Tiny Giant Studio/Modular 3D Layouts/Element Updater/Animated")]
|
||||
public class AnimatedElementUpdater : LayoutElementModule
|
||||
{
|
||||
public override void UpdateLocalTransform(Transform transform, VariableHolder[] variableHolders, Vector3 localPosition, Quaternion localRotation)
|
||||
{
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
AddAnimatorIfRequired(transform);
|
||||
|
||||
LayoutElementAnimator elementAnimator = transform.gameObject.GetComponent<LayoutElementAnimator>();
|
||||
|
||||
if (elementAnimator.targetPosition != localPosition)
|
||||
{
|
||||
elementAnimator.NewTargetLocalPosition(variableHolders, localPosition);
|
||||
|
||||
//if (elementAnimator.targetRotation != localRotation)
|
||||
elementAnimator.NewTargetLocalRotation(variableHolders, localRotation);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (transform.localPosition != localPosition) //This is to avoid unnecessary marking things as changed in scene hierarchy
|
||||
transform.localPosition = localPosition;
|
||||
|
||||
if (transform.localRotation != localRotation) //This is to avoid unnecessary marking things as changed in scene hierarchy
|
||||
transform.localRotation = localRotation;
|
||||
}
|
||||
}
|
||||
public override void UpdateLocalPosition(Transform transform, VariableHolder[] variableHolders, Vector3 localPosition)
|
||||
{
|
||||
if (transform.localPosition != localPosition) //This is to avoid unnecessary marking things as changed in scene hierarchy
|
||||
{
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
AddAnimatorIfRequired(transform);
|
||||
transform.gameObject.GetComponent<LayoutElementAnimator>().NewTargetLocalPosition(variableHolders, localPosition);
|
||||
}
|
||||
else
|
||||
{
|
||||
transform.localPosition = localPosition;
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void UpdateLocalRotation(Transform transform, VariableHolder[] variableHolders, Quaternion localRotation)
|
||||
{
|
||||
if (transform.localRotation != localRotation) //This is to avoid unnecessary marking things as changed in scene hierarchy
|
||||
{
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
AddAnimatorIfRequired(transform);
|
||||
transform.gameObject.GetComponent<LayoutElementAnimator>().NewTargetLocalRotation(variableHolders, localRotation);
|
||||
}
|
||||
else
|
||||
{
|
||||
transform.localRotation = localRotation;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public override void UpdateWorldTransform(Transform transform, VariableHolder[] variableHolders, Vector3 position, Quaternion rotation)
|
||||
{
|
||||
transform.SetPositionAndRotation(position, rotation);
|
||||
}
|
||||
public override void UpdateWorldPosition(Transform transform, VariableHolder[] variableHolders, Vector3 position)
|
||||
{
|
||||
transform.position = position;
|
||||
}
|
||||
public override void UpdateWorldRotation(Transform transform, VariableHolder[] variableHolders, Quaternion rotation)
|
||||
{
|
||||
transform.rotation = rotation;
|
||||
}
|
||||
|
||||
|
||||
void AddAnimatorIfRequired(Transform transform)
|
||||
{
|
||||
if (!transform.gameObject.GetComponent<LayoutElementAnimator>())
|
||||
transform.gameObject.AddComponent<LayoutElementAnimator>();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public override string VariableWarnings(VariableHolder[] variableHolders)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1016cff7a4bef0d46a3c19b6413b2222
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 247241
|
||||
packageName: Modular 3D Text - In-Game 3D UI System
|
||||
packageVersion: 4.9.2
|
||||
assetPath: Assets/Plugins/Tiny Giant Studio/Modular 3D Layouts/Scripts/ElementUpdaters/AnimatedElementUpdater.cs
|
||||
uploadId: 877966
|
||||
@@ -0,0 +1,52 @@
|
||||
using TinyGiantStudio.Modules;
|
||||
using UnityEngine;
|
||||
|
||||
namespace TinyGiantStudio.Layout
|
||||
{
|
||||
[CreateAssetMenu(menuName = "Tiny Giant Studio/Modular 3D Layouts/Element Updater/Flat")]
|
||||
public class BaseLayoutElementUpdater : LayoutElementModule
|
||||
{
|
||||
public override void UpdateLocalTransform(Transform transform, VariableHolder[] variableHolders, Vector3 localPosition, Quaternion localRotation)
|
||||
{
|
||||
if (transform.localPosition != localPosition) //This is to avoid unnecessary marking things as changed in scene hierarchy
|
||||
transform.localPosition = localPosition;
|
||||
|
||||
if (transform.localRotation != localRotation) //This is to avoid unnecessary marking things as changed in scene hierarchy
|
||||
transform.localRotation = localRotation;
|
||||
}
|
||||
public override void UpdateWorldTransform(Transform transform, VariableHolder[] variableHolders, Vector3 position, Quaternion rotation)
|
||||
{
|
||||
transform.SetPositionAndRotation(position, rotation);
|
||||
}
|
||||
public override void UpdateLocalPosition(Transform transform, VariableHolder[] variableHolders, Vector3 localPosition)
|
||||
{
|
||||
if (transform.localPosition != localPosition) //This is to avoid unnecessary marking things as changed in scene hierarchy
|
||||
transform.localPosition = localPosition;
|
||||
}
|
||||
public override void UpdateWorldPosition(Transform transform, VariableHolder[] variableHolders, Vector3 position)
|
||||
{
|
||||
transform.position = position;
|
||||
}
|
||||
public override void UpdateLocalRotation(Transform transform, VariableHolder[] variableHolders, Quaternion localRotation)
|
||||
{
|
||||
if (transform.localRotation != localRotation) //This is to avoid unnecessary marking things as changed in scene hierarchy
|
||||
transform.localRotation = localRotation;
|
||||
}
|
||||
public override void UpdateWorldRotation(Transform transform, VariableHolder[] variableHolders, Quaternion rotation)
|
||||
{
|
||||
transform.rotation = rotation;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public override string VariableWarnings(VariableHolder[] variableHolders)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9874342bdf7f7c04382bb1befebfb05e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 247241
|
||||
packageName: Modular 3D Text - In-Game 3D UI System
|
||||
packageVersion: 4.9.2
|
||||
assetPath: Assets/Plugins/Tiny Giant Studio/Modular 3D Layouts/Scripts/ElementUpdaters/BaseLayoutElementUpdater.cs
|
||||
uploadId: 877966
|
||||
@@ -0,0 +1,105 @@
|
||||
using TinyGiantStudio.Modules;
|
||||
using UnityEngine;
|
||||
|
||||
namespace TinyGiantStudio.Layout
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
public class LayoutElementAnimator : MonoBehaviour
|
||||
{
|
||||
bool settingPosition = false;
|
||||
public float moveDuration;
|
||||
public Vector3 startingPosition;
|
||||
public Vector3 targetPosition;
|
||||
public AnimationCurve positionAnimationCurve;
|
||||
|
||||
bool settingRotation = false;
|
||||
public float rotateDuration;
|
||||
public Quaternion startingRotation;
|
||||
public Quaternion targetRotation;
|
||||
public AnimationCurve rotationAnimationCurve;
|
||||
|
||||
public float positionTimer = 0;
|
||||
public float rotationTimer = 0;
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (settingPosition)
|
||||
{
|
||||
if (positionTimer < moveDuration)
|
||||
{
|
||||
float perc = positionTimer / moveDuration;
|
||||
transform.localPosition = Vector3.LerpUnclamped(startingPosition, targetPosition, positionAnimationCurve.Evaluate(perc));
|
||||
}
|
||||
else
|
||||
{
|
||||
transform.localPosition = targetPosition;
|
||||
settingPosition = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (settingRotation)
|
||||
{
|
||||
if (rotationTimer < rotateDuration)
|
||||
{
|
||||
if (!IsNaN(startingRotation) && !IsNaN(targetRotation))
|
||||
{
|
||||
float perc = rotationTimer / moveDuration;
|
||||
var currentRotation = Quaternion.LerpUnclamped(startingRotation, targetRotation, rotationAnimationCurve.Evaluate(perc));
|
||||
if (!IsNaN(currentRotation))
|
||||
transform.localRotation = currentRotation;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
transform.localRotation = targetRotation;
|
||||
settingRotation = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!settingRotation && !settingPosition)
|
||||
this.enabled = false;
|
||||
|
||||
|
||||
positionTimer += Time.deltaTime;
|
||||
rotationTimer += Time.deltaTime;
|
||||
}
|
||||
|
||||
public void NewTargetLocalPosition(VariableHolder[] variableHolders, Vector3 newTargetPosition)
|
||||
{
|
||||
if (targetPosition == newTargetPosition)
|
||||
return;
|
||||
|
||||
targetPosition = newTargetPosition;
|
||||
positionTimer = 0;
|
||||
startingPosition = transform.localPosition;
|
||||
moveDuration = variableHolders[0].floatValue;
|
||||
positionAnimationCurve = variableHolders[1].animationCurve;
|
||||
|
||||
settingPosition = true;
|
||||
|
||||
this.enabled = true;
|
||||
}
|
||||
public void NewTargetLocalRotation(VariableHolder[] variableHolders, Quaternion target)
|
||||
{
|
||||
if (targetRotation == target)
|
||||
return;
|
||||
|
||||
rotationTimer = 0;
|
||||
startingRotation = transform.localRotation;
|
||||
targetRotation = target;
|
||||
rotateDuration = variableHolders[2].floatValue;
|
||||
rotationAnimationCurve = variableHolders[3].animationCurve;
|
||||
|
||||
settingRotation = true;
|
||||
|
||||
this.enabled = true;
|
||||
}
|
||||
|
||||
private bool IsNaN(Quaternion q)
|
||||
{
|
||||
//return q.x == 0 && q.y == 0 && q.z == 0;
|
||||
return float.IsNaN(q.x) && float.IsNaN(q.y) && float.IsNaN(q.z);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bc4d5f6f1fb2e2345b7354c0c66be568
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 247241
|
||||
packageName: Modular 3D Text - In-Game 3D UI System
|
||||
packageVersion: 4.9.2
|
||||
assetPath: Assets/Plugins/Tiny Giant Studio/Modular 3D Layouts/Scripts/ElementUpdaters/LayoutElementAnimator.cs
|
||||
uploadId: 877966
|
||||
@@ -0,0 +1,15 @@
|
||||
using TinyGiantStudio.Modules;
|
||||
using UnityEngine;
|
||||
|
||||
namespace TinyGiantStudio.Layout
|
||||
{
|
||||
public abstract class LayoutElementModule : ModuleCore
|
||||
{
|
||||
public abstract void UpdateLocalTransform(Transform target, VariableHolder[] variableHolders, Vector3 localPosition, Quaternion localRotation);
|
||||
public abstract void UpdateWorldTransform(Transform target, VariableHolder[] variableHolders, Vector3 position, Quaternion rotation);
|
||||
public abstract void UpdateLocalPosition(Transform target, VariableHolder[] variableHolders, Vector3 localPosition);
|
||||
public abstract void UpdateWorldPosition(Transform target, VariableHolder[] variableHolders, Vector3 position);
|
||||
public abstract void UpdateLocalRotation(Transform target, VariableHolder[] variableHolders, Quaternion localRotation);
|
||||
public abstract void UpdateWorldRotation(Transform target, VariableHolder[] variableHolders, Quaternion rotation);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1c3386a33f3628247911b8bb92a5c138
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 247241
|
||||
packageName: Modular 3D Text - In-Game 3D UI System
|
||||
packageVersion: 4.9.2
|
||||
assetPath: Assets/Plugins/Tiny Giant Studio/Modular 3D Layouts/Scripts/ElementUpdaters/LayoutElementModule.cs
|
||||
uploadId: 877966
|
||||
@@ -0,0 +1,12 @@
|
||||
using TinyGiantStudio.Modules;
|
||||
|
||||
namespace TinyGiantStudio.Layout
|
||||
{
|
||||
|
||||
[System.Serializable]
|
||||
public class LayoutElementModuleContainer
|
||||
{
|
||||
public LayoutElementModule module;
|
||||
public VariableHolder[] variableHolders;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 41791388c9a20a64382c5ce4fd9ab4d4
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 247241
|
||||
packageName: Modular 3D Text - In-Game 3D UI System
|
||||
packageVersion: 4.9.2
|
||||
assetPath: Assets/Plugins/Tiny Giant Studio/Modular 3D Layouts/Scripts/ElementUpdaters/LayoutElementModuleContainer.cs
|
||||
uploadId: 877966
|
||||
@@ -0,0 +1,98 @@
|
||||
using TinyGiantStudio.Modules;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AI;
|
||||
|
||||
namespace TinyGiantStudio.Layout
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
public class LayoutElementNavmeshController : MonoBehaviour
|
||||
{
|
||||
//bool settingPosition = false;
|
||||
public Vector3 startingPosition;
|
||||
public Vector3 targetPosition;
|
||||
|
||||
public float gravitationalAcceleration = 10;
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (transform.position != targetPosition)
|
||||
{
|
||||
////GetComponent<Rigidbody>().AddForce((targetPosition - transform.position) * gravitationalAcceleration * Time.deltaTime);
|
||||
//Vector3 direction = targetPosition - transform.position;
|
||||
//GetComponent<Rigidbody>().AddForceAtPosition(direction.normalized, transform.position);
|
||||
}
|
||||
|
||||
//if (settingPosition)
|
||||
//{
|
||||
// //if (timer < moveDuration)
|
||||
// //{
|
||||
// // float perc = timer / moveDuration;
|
||||
// // GetComponent<Rigidbody>().velocity += gravitationalAcceleration * Time.fixedTime * (targetPosition - transform.position);
|
||||
// // transform.localPosition = Vector3.LerpUnclamped(startingPosition, targetPosition, positionAnimationCurve.Evaluate(perc));
|
||||
// //}
|
||||
// //else
|
||||
// //{
|
||||
// // transform.localPosition = targetPosition;
|
||||
// // settingPosition = false;
|
||||
// //}
|
||||
//}
|
||||
|
||||
//if (settingRotation)
|
||||
//{
|
||||
// if (timer < rotateDuration)
|
||||
// {
|
||||
// if (!IsNaN(startingRotation) && !IsNaN(targetRotation))
|
||||
// {
|
||||
// float perc = timer / moveDuration;
|
||||
// transform.localRotation = Quaternion.LerpUnclamped(startingRotation, targetRotation, rotationAnimationCurve.Evaluate(perc)); ;
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// transform.localRotation = targetRotation;
|
||||
// settingRotation = false;
|
||||
// }
|
||||
//}
|
||||
|
||||
//if (!settingRotation && !settingPosition)
|
||||
// this.enabled = false;
|
||||
|
||||
|
||||
//timer += Time.deltaTime;
|
||||
}
|
||||
|
||||
public void NewTargetLocalPosition(VariableHolder[] variableHolders, Vector3 target)
|
||||
{
|
||||
if (targetPosition == target)
|
||||
return;
|
||||
|
||||
NavMesh.avoidancePredictionTime = 2.5f;
|
||||
NavMesh.pathfindingIterationsPerFrame = 1000;
|
||||
|
||||
|
||||
//GetComponent<NavMeshAgent>().avoidancePriority = Random.Range(50, 100);
|
||||
GetComponent<NavMeshAgent>().obstacleAvoidanceType = ObstacleAvoidanceType.HighQualityObstacleAvoidance;
|
||||
GetComponent<NavMeshAgent>().SetDestination(targetPosition);
|
||||
}
|
||||
public void NewTargetLocalRotation(VariableHolder[] variableHolders, Quaternion target)
|
||||
{
|
||||
//if (targetRotation == target)
|
||||
// return;
|
||||
|
||||
//timer = 0;
|
||||
//startingRotation = transform.localRotation;
|
||||
//targetRotation = target;
|
||||
//rotateDuration = variableHolders[2].floatValue;
|
||||
//rotationAnimationCurve = variableHolders[3].animationCurve;
|
||||
|
||||
//settingRotation = true;
|
||||
|
||||
//this.enabled = true;
|
||||
}
|
||||
|
||||
private bool IsNaN(Quaternion q)
|
||||
{
|
||||
return q.x == 0 && q.y == 0 && q.z == 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 047ca61faa35e5242bd3e9199ba484ac
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 247241
|
||||
packageName: Modular 3D Text - In-Game 3D UI System
|
||||
packageVersion: 4.9.2
|
||||
assetPath: Assets/Plugins/Tiny Giant Studio/Modular 3D Layouts/Scripts/ElementUpdaters/LayoutElementNavmeshController.cs
|
||||
uploadId: 877966
|
||||
@@ -0,0 +1,100 @@
|
||||
using TinyGiantStudio.Modules;
|
||||
using UnityEngine;
|
||||
|
||||
namespace TinyGiantStudio.Layout
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
public class LayoutElementPhysicsController : MonoBehaviour
|
||||
{
|
||||
//bool settingPosition = false;
|
||||
public Vector3 startingPosition;
|
||||
public Vector3 targetPosition;
|
||||
|
||||
public float gravitationalAcceleration = 10;
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (transform.position != targetPosition)
|
||||
{
|
||||
GetComponent<Rigidbody>().linearVelocity += gravitationalAcceleration * Time.fixedTime * (targetPosition - transform.position);
|
||||
////GetComponent<Rigidbody>().AddForce((targetPosition - transform.position) * gravitationalAcceleration * Time.deltaTime);
|
||||
//Vector3 direction = targetPosition - transform.position;
|
||||
//GetComponent<Rigidbody>().AddForceAtPosition(direction.normalized, transform.position);
|
||||
}
|
||||
|
||||
//if (settingPosition)
|
||||
//{
|
||||
// //if (timer < moveDuration)
|
||||
// //{
|
||||
// // float perc = timer / moveDuration;
|
||||
// // GetComponent<Rigidbody>().velocity += gravitationalAcceleration * Time.fixedTime * (targetPosition - transform.position);
|
||||
// // transform.localPosition = Vector3.LerpUnclamped(startingPosition, targetPosition, positionAnimationCurve.Evaluate(perc));
|
||||
// //}
|
||||
// //else
|
||||
// //{
|
||||
// // transform.localPosition = targetPosition;
|
||||
// // settingPosition = false;
|
||||
// //}
|
||||
//}
|
||||
|
||||
//if (settingRotation)
|
||||
//{
|
||||
// if (timer < rotateDuration)
|
||||
// {
|
||||
// if (!IsNaN(startingRotation) && !IsNaN(targetRotation))
|
||||
// {
|
||||
// float perc = timer / moveDuration;
|
||||
// transform.localRotation = Quaternion.LerpUnclamped(startingRotation, targetRotation, rotationAnimationCurve.Evaluate(perc)); ;
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// transform.localRotation = targetRotation;
|
||||
// settingRotation = false;
|
||||
// }
|
||||
//}
|
||||
|
||||
//if (!settingRotation && !settingPosition)
|
||||
// this.enabled = false;
|
||||
|
||||
|
||||
//timer += Time.deltaTime;
|
||||
}
|
||||
|
||||
public void NewTargetLocalPosition(VariableHolder[] variableHolders, Vector3 target)
|
||||
{
|
||||
if (targetPosition == target)
|
||||
return;
|
||||
|
||||
//timer = 0;
|
||||
startingPosition = transform.localPosition;
|
||||
targetPosition = target;
|
||||
//moveDuration = variableHolders[0].floatValue;
|
||||
//positionAnimationCurve = variableHolders[1].animationCurve;
|
||||
|
||||
//settingPosition = true;
|
||||
|
||||
this.enabled = true;
|
||||
}
|
||||
public void NewTargetLocalRotation(VariableHolder[] variableHolders, Quaternion target)
|
||||
{
|
||||
//if (targetRotation == target)
|
||||
// return;
|
||||
|
||||
//timer = 0;
|
||||
//startingRotation = transform.localRotation;
|
||||
//targetRotation = target;
|
||||
//rotateDuration = variableHolders[2].floatValue;
|
||||
//rotationAnimationCurve = variableHolders[3].animationCurve;
|
||||
|
||||
//settingRotation = true;
|
||||
|
||||
//this.enabled = true;
|
||||
}
|
||||
|
||||
private bool IsNaN(Quaternion q)
|
||||
{
|
||||
return q.x == 0 && q.y == 0 && q.z == 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e91b61cafad9a284883a87f67a687245
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 247241
|
||||
packageName: Modular 3D Text - In-Game 3D UI System
|
||||
packageVersion: 4.9.2
|
||||
assetPath: Assets/Plugins/Tiny Giant Studio/Modular 3D Layouts/Scripts/ElementUpdaters/LayoutElementPhysicsController.cs
|
||||
uploadId: 877966
|
||||
@@ -0,0 +1,103 @@
|
||||
using TinyGiantStudio.Modules;
|
||||
using UnityEngine;
|
||||
|
||||
namespace TinyGiantStudio.Layout
|
||||
{
|
||||
// 1 = duration
|
||||
// 2 = position move curve
|
||||
|
||||
|
||||
[CreateAssetMenu(menuName = "Tiny Giant Studio/Modular 3D Layouts/Element Updater/Navmesh")]
|
||||
public class NavMeshElementUpdater : LayoutElementModule
|
||||
{
|
||||
public override void UpdateLocalTransform(Transform transform, VariableHolder[] variableHolders, Vector3 localPosition, Quaternion localRotation)
|
||||
{
|
||||
if (transform.localPosition != localPosition) //This is to avoid unnecessary marking things as changed in scene hierarchy
|
||||
{
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
AddAnimatorIfRequired(transform);
|
||||
transform.gameObject.GetComponent<LayoutElementNavmeshController>().NewTargetLocalPosition(variableHolders, localPosition);
|
||||
}
|
||||
else
|
||||
{
|
||||
transform.localPosition = localPosition;
|
||||
}
|
||||
}
|
||||
|
||||
if (transform.localRotation != localRotation) //This is to avoid unnecessary marking things as changed in scene hierarchy
|
||||
{
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
AddAnimatorIfRequired(transform);
|
||||
transform.gameObject.GetComponent<LayoutElementNavmeshController>().NewTargetLocalRotation(variableHolders, localRotation);
|
||||
}
|
||||
else
|
||||
{
|
||||
transform.localRotation = localRotation;
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void UpdateLocalPosition(Transform transform, VariableHolder[] variableHolders, Vector3 localPosition)
|
||||
{
|
||||
|
||||
if (transform.localPosition != localPosition) //This is to avoid unnecessary marking things as changed in scene hierarchy
|
||||
{
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
AddAnimatorIfRequired(transform);
|
||||
transform.gameObject.GetComponent<LayoutElementNavmeshController>().NewTargetLocalPosition(variableHolders, localPosition);
|
||||
}
|
||||
else
|
||||
{
|
||||
transform.localPosition = localPosition;
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void UpdateLocalRotation(Transform transform, VariableHolder[] variableHolders, Quaternion localRotation)
|
||||
{
|
||||
if (transform.localRotation != localRotation) //This is to avoid unnecessary marking things as changed in scene hierarchy
|
||||
{
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
AddAnimatorIfRequired(transform);
|
||||
transform.gameObject.GetComponent<LayoutElementNavmeshController>().NewTargetLocalRotation(variableHolders, localRotation);
|
||||
}
|
||||
else
|
||||
{
|
||||
transform.localRotation = localRotation;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public override void UpdateWorldTransform(Transform transform, VariableHolder[] variableHolders, Vector3 position, Quaternion rotation)
|
||||
{
|
||||
transform.SetPositionAndRotation(position, rotation);
|
||||
}
|
||||
public override void UpdateWorldPosition(Transform transform, VariableHolder[] variableHolders, Vector3 position)
|
||||
{
|
||||
transform.position = position;
|
||||
}
|
||||
public override void UpdateWorldRotation(Transform transform, VariableHolder[] variableHolders, Quaternion rotation)
|
||||
{
|
||||
transform.rotation = rotation;
|
||||
}
|
||||
|
||||
|
||||
void AddAnimatorIfRequired(Transform transform)
|
||||
{
|
||||
if (!transform.gameObject.GetComponent<LayoutElementNavmeshController>())
|
||||
transform.gameObject.AddComponent<LayoutElementNavmeshController>();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public override string VariableWarnings(VariableHolder[] variableHolders)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9a96d9826294ad948a7e36a927b4e8e2
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 247241
|
||||
packageName: Modular 3D Text - In-Game 3D UI System
|
||||
packageVersion: 4.9.2
|
||||
assetPath: Assets/Plugins/Tiny Giant Studio/Modular 3D Layouts/Scripts/ElementUpdaters/NavMeshElementUpdater.cs
|
||||
uploadId: 877966
|
||||
@@ -0,0 +1,103 @@
|
||||
using TinyGiantStudio.Modules;
|
||||
using UnityEngine;
|
||||
|
||||
namespace TinyGiantStudio.Layout
|
||||
{
|
||||
// 1 = duration
|
||||
// 2 = position move curve
|
||||
|
||||
|
||||
[CreateAssetMenu(menuName = "Tiny Giant Studio/Modular 3D Layouts/Element Updater/Physics")]
|
||||
public class PhysicsElementUpdater : LayoutElementModule
|
||||
{
|
||||
public override void UpdateLocalTransform(Transform transform, VariableHolder[] variableHolders, Vector3 localPosition, Quaternion localRotation)
|
||||
{
|
||||
if (transform.localPosition != localPosition) //This is to avoid unnecessary marking things as changed in scene hierarchy
|
||||
{
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
AddAnimatorIfRequired(transform);
|
||||
transform.gameObject.GetComponent<LayoutElementPhysicsController>().NewTargetLocalPosition(variableHolders, localPosition);
|
||||
}
|
||||
else
|
||||
{
|
||||
transform.localPosition = localPosition;
|
||||
}
|
||||
}
|
||||
|
||||
if (transform.localRotation != localRotation) //This is to avoid unnecessary marking things as changed in scene hierarchy
|
||||
{
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
AddAnimatorIfRequired(transform);
|
||||
transform.gameObject.GetComponent<LayoutElementPhysicsController>().NewTargetLocalRotation(variableHolders, localRotation);
|
||||
}
|
||||
else
|
||||
{
|
||||
transform.localRotation = localRotation;
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void UpdateLocalPosition(Transform transform, VariableHolder[] variableHolders, Vector3 localPosition)
|
||||
{
|
||||
|
||||
if (transform.localPosition != localPosition) //This is to avoid unnecessary marking things as changed in scene hierarchy
|
||||
{
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
AddAnimatorIfRequired(transform);
|
||||
transform.gameObject.GetComponent<LayoutElementPhysicsController>().NewTargetLocalPosition(variableHolders, localPosition);
|
||||
}
|
||||
else
|
||||
{
|
||||
transform.localPosition = localPosition;
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void UpdateLocalRotation(Transform transform, VariableHolder[] variableHolders, Quaternion localRotation)
|
||||
{
|
||||
if (transform.localRotation != localRotation) //This is to avoid unnecessary marking things as changed in scene hierarchy
|
||||
{
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
AddAnimatorIfRequired(transform);
|
||||
transform.gameObject.GetComponent<LayoutElementPhysicsController>().NewTargetLocalRotation(variableHolders, localRotation);
|
||||
}
|
||||
else
|
||||
{
|
||||
transform.localRotation = localRotation;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public override void UpdateWorldTransform(Transform transform, VariableHolder[] variableHolders, Vector3 position, Quaternion rotation)
|
||||
{
|
||||
transform.SetPositionAndRotation(position, rotation);
|
||||
}
|
||||
public override void UpdateWorldPosition(Transform transform, VariableHolder[] variableHolders, Vector3 position)
|
||||
{
|
||||
transform.position = position;
|
||||
}
|
||||
public override void UpdateWorldRotation(Transform transform, VariableHolder[] variableHolders, Quaternion rotation)
|
||||
{
|
||||
transform.rotation = rotation;
|
||||
}
|
||||
|
||||
|
||||
void AddAnimatorIfRequired(Transform transform)
|
||||
{
|
||||
if (!transform.gameObject.GetComponent<LayoutElementPhysicsController>())
|
||||
transform.gameObject.AddComponent<LayoutElementPhysicsController>();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public override string VariableWarnings(VariableHolder[] variableHolders)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0fde9b90f291fe74dba12608b3483f44
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 247241
|
||||
packageName: Modular 3D Text - In-Game 3D UI System
|
||||
packageVersion: 4.9.2
|
||||
assetPath: Assets/Plugins/Tiny Giant Studio/Modular 3D Layouts/Scripts/ElementUpdaters/PhysicsElementUpdater.cs
|
||||
uploadId: 877966
|
||||
Reference in New Issue
Block a user