我在Unity 3D 5.3.5中实现工作法术时遇到了麻烦。我有一个空的游戏对象,它是该能力的父级,它只包含一个名为Spell的脚本,还包含一个子粒子系统。出于测试目的,我将其保留在资源文件夹中,以便我可以像这样轻松地实例化它
GameObject castedSpell = (GameObject)Instantiate(Resources.Load("Fireball"), transform.position, transform.rotation);
transform
指的是当前的玩家对象transform
然而,它是在地面上产生的,可以通过从变换移动y轴来修复,但这听起来不是一个好主意,有时候粒子会与玩家碰撞,我想要实例化在屏幕中间朝向十字准线的法术:http://prntscr.com/bx91op
十字准线与Tera在线完全相同 - 参考:https://www.youtube.com/watch?v=Jcg4o8IVwlw
我确实有这个十字准线的副本,但我仍然不知道如何对它进行实例化。当法术碰撞时我还需要做一些破坏性等。我看到粒子系统有一个碰撞属性和一个事件触发器private void OnParticleCollision(GameObject other)
但是当我将它附加到主粒子对象http://prntscr.com/bx9356时,它似乎根本不起作用。我的播放器对象具有PlayArea
的图层标记,当我将碰撞属性设置为不与此特定标记发生碰撞时,没有任何更改,它仍将在播放器内爆炸。
我的问题的简短摘要:
答案 0 :(得分:0)
由于您的大多数问题已经在评论中得到解答,我只会解决这个问题。 2:
要使GameObject目标成为特定点,您可以使用transform.LookAt()函数。
为了确定所述目标点,最佳选择可能是从你的相机/十字准线进入你的场景raycast。然后射线击中的第一个点可以用作你法术的目标点。 (请注意相机和角色之间的墙壁或物体......)