add ckg
plantilla base para movimiento básico
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class rotatingPlatform : MonoBehaviour
|
||||
{
|
||||
public bool rotationActive = true;
|
||||
public float rotationSpeed;
|
||||
public float rotationDelay;
|
||||
public float rotationAmount;
|
||||
|
||||
public Vector3 rotationAxis;
|
||||
|
||||
Coroutine rotationCoroutine;
|
||||
|
||||
void Start ()
|
||||
{
|
||||
if (rotationActive) {
|
||||
rotatePlatform ();
|
||||
}
|
||||
}
|
||||
|
||||
void Update ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void rotatePlatform ()
|
||||
{
|
||||
stopRotationCoroutine ();
|
||||
rotationCoroutine = StartCoroutine (rotatePlatformCoroutine ());
|
||||
}
|
||||
|
||||
public void stopRotationCoroutine ()
|
||||
{
|
||||
if (rotationCoroutine != null) {
|
||||
StopCoroutine (rotationCoroutine);
|
||||
}
|
||||
}
|
||||
|
||||
IEnumerator rotatePlatformCoroutine ()
|
||||
{
|
||||
Vector3 targetRotation = transform.eulerAngles + rotationAxis * rotationAmount;
|
||||
|
||||
Quaternion initialRotation = transform.rotation;
|
||||
|
||||
float t = 0.0f;
|
||||
while (t < rotationSpeed) {
|
||||
t += Time.deltaTime;
|
||||
transform.rotation = initialRotation * Quaternion.AngleAxis (t / rotationSpeed * rotationAmount, rotationAxis);
|
||||
yield return null;
|
||||
}
|
||||
|
||||
transform.eulerAngles = targetRotation;
|
||||
|
||||
WaitForSeconds delay = new WaitForSeconds (rotationDelay);
|
||||
|
||||
yield return delay;
|
||||
|
||||
if (rotationActive) {
|
||||
|
||||
rotatePlatform ();
|
||||
}
|
||||
}
|
||||
|
||||
public void setRotationActiveState (bool state)
|
||||
{
|
||||
rotationActive = state;
|
||||
if (rotationActive) {
|
||||
rotatePlatform ();
|
||||
} else {
|
||||
stopRotationCoroutine ();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user