我在Unity 3D 5.3.5中執行工作法術時遇到問題。我有一個空的遊戲對象,它是該能力的父親,它只包含一個叫做Spell的腳本,還有一個是粒子系統的孩子。出於測試目的,我把它放在資源文件夾,這樣我就可以很容易地對其進行實例化這樣Unity 3D法術鑄造
GameObject castedSpell = (GameObject)Instantiate(Resources.Load("Fireball"), transform.position, transform.rotation);
transform
是指當前Player對象的transform
然而,它在地面產卵從而可以通過從變換中移動y軸來固定,但這聽起來不是一個好主意,有時粒子會與玩家發生碰撞,我想在屏幕中間將該魔咒實例化爲十字準線:http://prntscr.com/bx91op
十字準線的工作原理完全一樣,在網上特拉 - 參考:https://www.youtube.com/watch?v=Jcg4o8IVwlw
我確實有這個十字的副本,但我仍然不知道如何實例化一個咒語朝它。當法術碰撞時,我也需要做一些傷害等等。我看到粒子系統具有碰撞屬性並且還有一個事件觸發器private void OnParticleCollision(GameObject other)
,但是當我將它附加到主要粒子對象http://prntscr.com/bx9356時,似乎並不奏效。我的播放器對象具有PlayArea
的圖層標記,當我將碰撞屬性設置爲不與此特定標記衝突時,沒有任何變化,它仍會在播放器內部爆炸。
所以我的問題的簡短摘要:
- 如何正確實例化一個咒語?
- 如何旋轉並將其發送到屏幕上的十字準線?
- 如何防止與特定物體發生碰撞?
- 如何檢查何時發生碰撞?
如果您使用播放器作爲起始位置,則咒語可能從底部開始是合乎邏輯的。這取決於玩家對象的來源。通常你使用一個空的gameobject作爲起始位置,並且位置正確(例如在槍的前端)。在你的情況下,這可能在玩家手中。爲了防止與某些物體碰撞,你可以使用各種東西,例如圖層或標籤。碰撞可以通過像OnCollisionEnter這樣的函數來檢測。 –
對於這個方向,我會提出類似'transform.position.forward'的地方,其中變換是指玩家。輪換應該是球員相應的輪換。 –
http://wiki.unity3d.com/index.php/ShootingWeaponScript –