using System.Collections; using System.Collections.Generic; using UnityEngine; public class ActionReplay : MonoBehaviour { public List actionReplayRecords = new List(); private Game game; private Rigidbody rigidBody; private Vector3 velocity; private Vector3 angularVelocity; void Start () { game = GameObject.FindObjectOfType(); rigidBody = GetComponent(); } void Update () { if (!rigidBody.isKinematic) { velocity = rigidBody.velocity; angularVelocity = rigidBody.angularVelocity; } } public void RigidBodyCollider(bool isCollider) { foreach (Collider collider in GetComponents()) { collider.enabled = isCollider; } } public void RigidBodyFreeze(bool isFreeze) { rigidBody.isKinematic = isFreeze; } public void Add() { actionReplayRecords.Add(new ActionReplayRecord { position = transform.position, rotation = transform.rotation }); } public void Clear () { actionReplayRecords.Clear(); } public void SetTransform(float index) { game.currentReplayIndex = index; ActionReplayRecord record = actionReplayRecords[(int)index]; transform.position = record.position; transform.rotation = record.rotation; } public void SetVelocity() { rigidBody.velocity = velocity; rigidBody.angularVelocity = angularVelocity; } }