【发布时间】:2017-08-26 10:39:40
【问题描述】:
我有一个带枪的 2D 角色,我想在他的射击与其他物体发生碰撞时实例化一个爆炸。
我认为最好的方法是 JavaScript 中的 Raycast2D。
var hit: RaycastHit2D = Physics2D.Raycast(transform.position, Vector2.right);
if (hit.collider != null){
boomClone2 = Instantiate(boom, new Vector3(hit.point.x, hit.point.y, transform.position.z - 1), Quaternion.identity);
}
现在问题是我开火了,爆炸总是像我的角色前面的一个单位一样实例化,即使那里什么都没有。我不知道为什么。
【问题讨论】:
-
“nstantiates 总是像我的角色前面的一个单位一样,即使那里什么都没有。” 你能解释一下吗?也许你在说什么的截图......
-
它看起来像这样:字符_______________
_______________ 敌人 -
它不会实例化敌人,它只会实例化角色前面的几个单位
-
您是否尝试过在 Instantiate 方法调用中更改vector3?您所说的转换是哪个? (角色、敌人还是爆炸?)
-
您是否尝试过简单地打印出您正在碰撞的对象的名称?这将有助于您调试它。从那里您可以添加条件来验证预制件仅在遇到您想要的东西时才实例化。
标签: javascript unity3d unity5 raycasting unity2d