Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using KinematicCharacterController;
- using UnityEngine;
- namespace Runtime.Platform
- {
- public class MoveablePlatform : MonoBehaviour, IMoverController
- {
- public PhysicsMover Mover;
- [SerializeField] private Vector3 translationAxis = Vector3.right;
- [SerializeField] private float translationPeriod = 10;
- [SerializeField] private float translationSpeed = 1;
- [SerializeField] private bool isAxisLocal = false;
- [SerializeField] private Vector3 rotationAxis = Vector3.up;
- [SerializeField] private float rotSpeed = 10;
- private Vector3 _originalPosition;
- private void Start()
- {
- _originalPosition = transform.position;
- var rotationAxis = isAxisLocal ? transform.TransformDirection(this.rotationAxis) : this.rotationAxis;
- Mover.MoverController = this;
- }
- public void UpdateMovement(out Vector3 goalPosition, out Quaternion goalRotation, float deltaTime)
- {
- goalPosition = (_originalPosition + (translationAxis.normalized * Mathf.Sin(Time.time * translationSpeed) * translationPeriod));
- goalRotation = Quaternion.AngleAxis(rotSpeed * Time.time, rotationAxis);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement