iT邦幫忙

2022 iThome 鐵人賽

DAY 28
0

今天是挑戰的第28天!!!~~~

今天打開準備要繼續製作時,遇到一個小問題,也就是無法打開Unity Hub的問題,不管是使用以系統管理員身份執行,還是直接開啟,雖然在工作管理員的後台有再跑,但還是打不開,最後嘗試重新下載一次Unity,幸好有成功!!後來打開時發現授權到期了,不知道是不是因為這個原因才打不開QAQ

昨天成功的讓劍飛出去了,但因為持續地受到重力影響,因此當劍撞擊到靶上時會停一下,之後就會滑落,因此要加一個停在上面的程式!

程式碼>

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class swordcontroller : MonoBehaviour
{
 public void Shoot(Vector3 dir)
    {
        GetComponent<Rigidbody>().AddForce(dir);
    }
    void OnCollisionEnter(Collision other)
    {
        GetComponent<Rigidbody>().isKinematic = true;
    }
    void Start()
    {
        Shoot(new Vector3(0, 200, 500));
    }
}

這次使用void OnCollisionEnter(Collision other)的寫法,來發生碰撞,下面介紹一下OnCollisionEnter、OnTriggerEnter兩種碰撞差別

1.OnCollisionEnter方法要求碰撞的發起方必須擁有剛體,而被碰撞方有沒有剛體並不重要。

2.OnTriggerEnter方法則對此沒有要求,只需要碰撞雙方有一個具有剛體即可觸發。即剛體是一個判斷是否實現碰撞的是與否的標誌。

接著是使用isKinematic主要是用在剛體物件,只要設定為true碰撞後物體不受物理影響,只能透過程式改變Transform


上一篇
3D碰撞
下一篇
3D粒子特效
系列文
從零開始用Unity設計遊戲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言