Unity的2D游戏制作中,做了个发射子弹的功能,创建的新的子弹的GameObject可以实现功能,但是无法显示
发射子弹部分的代码如下,还请大神解答//Fireabullet.if(Input.GetMouseButtonDown(0)){intammoIndex=0;GameOb...
发射子弹部分的代码如下,还请大神解答
// Fire a bullet.
if(Input.GetMouseButtonDown(0)){
int ammoIndex = 0;
GameObject bullet = (GameObject)Instantiate(ammo[ammoIndex], transform.position, transform.rotation);
bullet.transform.LookAt(mouse_pos);
bullet.rigidbody2D.AddForce(bullet.transform.forward * bulletSpeed);
} 展开
// Fire a bullet.
if(Input.GetMouseButtonDown(0)){
int ammoIndex = 0;
GameObject bullet = (GameObject)Instantiate(ammo[ammoIndex], transform.position, transform.rotation);
bullet.transform.LookAt(mouse_pos);
bullet.rigidbody2D.AddForce(bullet.transform.forward * bulletSpeed);
} 展开
1个回答
展开全部
你创建的子弹是在Hierarchy面板中就没有,还是在Hierarchy有你创建的子弹,而scene视图中看不到,你的这些代码是没有问题的,只要你的ammo[0]是有值的,还有你的mouse_pos是什么,是鼠标点击位置转化成的世界坐标?转化时候有没有给z值。再继续追问吧,你给的这些信息找不出错误原因
更多追问追答
追问
Hierarchy中有创建的子弹,而且打中敌机也有反映,就是scene视图中显示不出来,mouse_pos是鼠标点击位置转化成的世界坐标,这是个2D游戏,所以z值为0.
追答
既然Hierarchy中有,而且可以打中敌机,那你当Hierarchy有你的子弹的时候暂停游戏(不是停止)双击子弹的克隆体,看看scene有没有,如果有,那就是你的子弹运动速度太快,导致的看不见,试一下减小bulletSpeed。没有就检查一下子弹的某些组件的各个属性,看是什么原因。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询