來比較這4個方塊附屬的屬性有什麼不同
先來個Collider
建一個等等跟椅子互動的物件(Sphere),並給他一個材質區分顏色
建一個腳本附在物件(Sphere)上,命名腳本*SphereCollider
*
在裡面新建一個方法
private void OnCollisionEnter (Collision Sphere)
{
if (Sphere != null)
{
Destroy(gameObject);
}
}
private void OnCollisionEnter(Collision Sphere)
if (Sphere != null)
Destroy(gameObject)
功能是在物體發生碰撞時,檢查碰撞的對象是否是一個有效的球體(Sphere),如果是的話,就銷毀(Destroy)當前物件(gameObject)。
BEFORE V.S. AFTER
這是被碰到的物件後會消除的情況
那來看另外一個情況,碰到的物件後會消除主角本身。
再建一個腳本附在物件(Sphere)上,命名腳本*SphereCollider01
*
private void OnCollisionEnter (Collision SSphere)
{
if (SSphere != null)
{
Destroy(SSphere.gameObject);
}
}
Destroy(SSphere.gameObject)
SSphere
物件所關聯的遊戲物件功能是在物體發生碰撞時,檢查碰撞的對象是否是一個有效的球體(Sphere),如果是的話,就銷毀(Destroy)撞到他的物件(gameObject)。
BEFORE V.S. AFTER
可以試看看把球加入Rigidbody屬性看看,會發生什麼事
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️
任何物件的碰撞都會刪除物件,包括掉落到地面。😭😭😭🥺🥺
改一下物件屬性跟程式碼
物件屬性:
更改這邊Tag
程式碼:
private void OnCollisionEnter (Collision Sphere)
{
if (SSphere != null)
if (Sphere.gameObject.tag == "Player")
{
Destroy(gameObject);
}
}
可以使用標籤判斷是否為"Player"碰撞
Tag(標籤)是 Unity 中用來識別物件類型的標記,可以幫助在程式碼中準確地辨識和處理不同類型的遊戲物件。
~~~~~這樣就不用怕掉到地板後 消失不見了~~~~
剛剛碰到深藍球球(*SphereCollider01
*),玩家直接消失不見。這樣遊戲玩不下去ㄌ啦
小改一下
if (SSphere.gameObject.tag == "Player")
{
Destroy(SSphere.gameObject)
SSphere.gameObject.transform.position = new Vector3((float)-2.70630479, (float)1.68752456, (float)1.24000001);
SSphere.gameObject.transform.rotation = Quaternion.identity;
}
//這個是碰到物件後,會回到起點。
複製物體位置 的路徑
不想一直進來一直改position那我們就設個變數吧
***所以說變數真的很重要吧***
public Transform point;
SSphere.gameObject.transform.position = point.position;
加入一個新的空物件,可命名New position
把這個空物件再拖進剛剛的point 就完成了
你就會發現,你可以做一些效果出來了,比如說傳送門、回到原點、瞬移等等
下篇換Triggerㄉ應用~~