fix?
This commit is contained in:
101
Runtime/Engine/Code/Components/CopyTransform.cs
Normal file → Executable file
101
Runtime/Engine/Code/Components/CopyTransform.cs
Normal file → Executable file
@@ -1,39 +1,64 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace RebootKit.Engine.Components {
|
||||
[Flags]
|
||||
public enum TransformComponents {
|
||||
None = 0,
|
||||
Position = 1 << 0,
|
||||
Rotation = 1 << 1,
|
||||
Scale = 1 << 2,
|
||||
All = Position | Rotation | Scale
|
||||
}
|
||||
|
||||
[DefaultExecutionOrder(100)]
|
||||
public class CopyTransform : MonoBehaviour {
|
||||
[SerializeField] TransformComponents m_Components = TransformComponents.All;
|
||||
[SerializeField] Transform m_Source;
|
||||
|
||||
Transform m_Transform;
|
||||
|
||||
void Awake() {
|
||||
m_Transform = transform;
|
||||
}
|
||||
|
||||
void LateUpdate() {
|
||||
if (m_Components.HasFlag(TransformComponents.Position)) {
|
||||
m_Transform.position = m_Source.position;
|
||||
}
|
||||
|
||||
if (m_Components.HasFlag(TransformComponents.Rotation)) {
|
||||
m_Transform.rotation = m_Source.rotation;
|
||||
}
|
||||
|
||||
if (m_Components.HasFlag(TransformComponents.Scale)) {
|
||||
m_Transform.localScale = m_Source.localScale;
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace RebootKit.Engine.Components {
|
||||
[Flags]
|
||||
public enum TransformComponents {
|
||||
None = 0,
|
||||
Position = 1 << 0,
|
||||
Rotation = 1 << 1,
|
||||
Scale = 1 << 2,
|
||||
All = Position | Rotation | Scale
|
||||
}
|
||||
|
||||
[DefaultExecutionOrder(100)]
|
||||
public class CopyTransform : MonoBehaviour {
|
||||
enum UpdateLoop {
|
||||
Update,
|
||||
LateUpdate,
|
||||
FixedUpdate
|
||||
}
|
||||
|
||||
[SerializeField] TransformComponents m_Components = TransformComponents.All;
|
||||
[SerializeField] Transform m_Source;
|
||||
[SerializeField] UpdateLoop m_UpdateLoop = UpdateLoop.LateUpdate;
|
||||
|
||||
Transform m_Transform;
|
||||
|
||||
void Awake() {
|
||||
m_Transform = transform;
|
||||
}
|
||||
|
||||
void FixedUpdate() {
|
||||
if (m_UpdateLoop == UpdateLoop.FixedUpdate) {
|
||||
CopyTransformComponents();
|
||||
}
|
||||
}
|
||||
|
||||
void Update() {
|
||||
if (m_UpdateLoop == UpdateLoop.Update) {
|
||||
CopyTransformComponents();
|
||||
}
|
||||
}
|
||||
|
||||
void LateUpdate() {
|
||||
if (m_UpdateLoop == UpdateLoop.LateUpdate) {
|
||||
CopyTransformComponents();
|
||||
}
|
||||
}
|
||||
|
||||
void CopyTransformComponents() {
|
||||
if (m_Components.HasFlag(TransformComponents.Position)) {
|
||||
m_Transform.position = m_Source.position;
|
||||
}
|
||||
|
||||
if (m_Components.HasFlag(TransformComponents.Rotation)) {
|
||||
m_Transform.rotation = m_Source.rotation;
|
||||
}
|
||||
|
||||
if (m_Components.HasFlag(TransformComponents.Scale)) {
|
||||
m_Transform.localScale = m_Source.localScale;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
0
Runtime/Engine/Code/Components/CopyTransform.cs.meta
Normal file → Executable file
0
Runtime/Engine/Code/Components/CopyTransform.cs.meta
Normal file → Executable file
Reference in New Issue
Block a user