using UnityEngine;
using System.Collections;
public class chicken_for : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void FixedUpdate () {
if (collision.gameObject.Quad == collisionObject){
Application.LoadLevel("SciFi Level");
}
}
}
我试图当一个人接触四人时,他去了这个科幻堡垒。然而,它说出了名字' collision'在当前背景下不存在。
答案 0 :(得分:3)
您正在引用不存在的变量(collision
)。你有一个不存在的变量collisionObject
。
collision
通常是OnCollisionEnter
方法的参数名称。您的代码应该在此方法中,而不是FixedUpdate
。我猜你已经从某个教程复制了代码,但是把它放错了方法。
collisionObject
更难以猜测,但我希望如果你的脚本是播放器对象上的一个组件,那么collisionObject
应该是你的四边形;如果脚本在四边形上,则collisionObject
应该是播放器。
无论哪种方式,您都需要声明该变量 - 可能是公共字段,以便您可以从检查器中填充它。
答案 1 :(得分:1)
添加新功能并确保在检查器中将播放器标记为播放器。您还需要确保玩家接触的四边形上有一个对撞机,并且玩家需要一个刚体组件。
using UnityEngine;
using System.Collections;
public class chicken_for : MonoBehaviour {
//This function will handle the collision on your object
void OnCollisionEnter (Collider col){
if(col.gameobject.tag == "Player"){ //if colliding object if tagged player
Application.LoadLevel("SciFi Level"); //load the sci-fi level
}
}
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}
这应该可以让你大致到达你想要的地方!