【问题标题】:Error CS0120: An object reference is required to access non-static member `UnityEngine.Collision.gameObject'错误 CS0120:访问非静态成员“UnityEngine.Collision.gameObject”需要对象引用
【发布时间】: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 你能弄明白这个吗?

标签: c# unity3d


【解决方案1】:

尝试将代码更改为:

void OnCollisionEnter (Collision other) {

    if (other.gameObject.tag == "Player") {
        isPlayerOn = true;
    }

}

代替:

if (Collision.gameObject.tag == "Player") {

错误告诉您Collision 类上没有名为gameObject 的静态成员。要调用非静态成员,您需要一个对象引用。在这种情况下,对象引用看起来应该是传递给此方法的 other 实例。

您可能还想对静态与非静态进行一些搜索。这里有一些很好的答案: Static vs non-static class members

【讨论】:

    猜你喜欢
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    相关资源
    最近更新 更多