平台游戏的创建代码总结如下,物理组件设置好,速度设置好,直接看代码
using UnityEngine;
using System.Collections;
public class MovingPlatform : MonoBehaviour {
[SerializeField]
Transform platform;
[SerializeField]
Transform startTransform;
[SerializeField]
Transform endTransform;
[SerializeField]
float platFormSpeed;
Vector3 direction;
Transform destination;
// Use this for initialization
void Start () {
SetDestination(startTransform);
}
void FixedUpdate() {
platform.GetComponent<Rigidbody>().MovePosition(platform.position + direction * platFormSpeed*Time.fixedDeltaTime);
if (Vector3.Distance(platform.position, destination.position) < platFormSpeed*Time.fixedDeltaTime)
{
SetDestination(destination == startTransform ? endTransform : startTransform);
}
}
void OnDrawGizmos() {
Gizmos.color = Color.green;
Gizmos.DrawWireCube(startTransform.position,platform.localScale);
Gizmos.color = Color.red;
Gizmos.DrawWireCube(endTransform.position, platform.localScale);
}
void SetDestination(Transform dest) {
destination = dest;
direction = (destination.position - platform.position).normalized;
}
}