【发布时间】:2014-10-23 20:36:33
【问题描述】:
首先让我说我是一个完整的初学者,只是通过拼凑类似教程和网站的部分才能走到这一步。
我所要做的就是制作一个只有站立时才会移动的平台。
using UnityEngine;
using System.Collections;
public class MovingPlatform : MonoBehaviour
{
public bool isPlayerOn;
[SerializeField]
Transform platform;
[SerializeField]
Transform startTransform;
[SerializeField]
Transform endTransform;
[SerializeField]
float platformSpeed;
Vector3 direction;
Transform destination;
void OnCollisionEnter (Collision other) {
if (Collision.gameObject.tag == "Player") {
isPlayerOn = true;
}
}
void OnCollisionExit (Collision other) {
if (Collision.gameObject.tag == "Player") {
isPlayerOn = false;
}
}
void Start (){
SetDestination (startTransform);
}
void FixedUpdate(){
platform.rigidbody.MovePosition (platform.position + direction * platformSpeed * Time.fixedDeltaTime);
if (Vector3.Distance (platform.position, destination.position) < platformSpeed * Time.fixedDeltaTime) {
SetDestination (destination == startTransform ? endTransform : startTransform);
}
}
void SetDestination(Transform dest){
destination = dest;
direction = (destination.position -platform.position).normalized;
}
}
现在我不知道这是否可行,我设法摆脱了大约 9 个其他错误,但没有这个。
Assets/MovingPlatform.cs(31,31):错误 CS0120:访问非静态成员 `UnityEngine.Collision.gameObject' 需要对象引用
【问题讨论】:
-
也许是
other.gameObject.tag而不是Collision.gameObject.tag? -
@Snuffleupagus 你能弄明白这个吗?