This commit is contained in:
CortexCore
2023-06-05 16:25:06 +08:00
parent 9027120bb8
commit 4565ff2e35
2947 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using RotaryHeart.Lib.SerializableDictionary;
namespace BITKit
{
public class OverrideTransform : MonoBehaviour
{
public List<Transform> sources = new();
Dictionary<string, Quaternion> rotations = new();
Dictionary<string, Vector3> positions = new();
Quaternion currentRotation;
Vector3 currentPosition;
Quaternion defaultRotation;
Vector3 defualtPosition;
public void Set(string key, Quaternion rotation)
{
rotations.Insert(key, rotation);
}
public void Set(string key, Vector3 position)
{
positions.Insert(key, position);
}
void Start()
{
defaultRotation = transform.localRotation;
defualtPosition = transform.localPosition;
}
void Update()
{
currentRotation = defaultRotation;
currentPosition = defualtPosition;
foreach (var x in sources)
{
currentRotation *= x.localRotation;
currentPosition += x.localPosition;
}
foreach (var x in rotations.Values)
{
currentRotation *= x;
}
foreach (var x in positions.Values)
{
currentPosition += x;
}
}
void LateUpdate()
{
transform.localPosition = currentPosition;
transform.localRotation = currentRotation;
}
}
}