簡體   English   中英

Unity3d不喜歡碰撞

[英]Unity3d not liking collision

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 )。 您也有一個不存在的變量collisionObject

collision通常是OnCollisionEnter方法的參數名稱。 您的代碼可能應該在此方法內,而不是FixedUpdate 我猜您是從某個地方的教程中復制了代碼,但是將其放在錯誤的方法中。

collisionObject ,另一方面是難以猜測,但我相信,如果你的腳本旨在為玩家對象上的組件,然后collisionObject應該是你的四核; 如果腳本位於四邊形上,則collisionObject應該是播放器。

無論哪種方式,您都需要聲明該變量-可能是一個公共字段,以便可以從檢查器中填充它。

添加新功能,並確保在檢查器中將播放器標記為播放器。 您還需要確保播放器接觸的四邊形上有一個碰撞器,並且播放器上有一個剛體組件。

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 () {

    }
}

這樣可以大致了解您想去的地方!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM