在此案例中,游戏玩法是发射子弹来打砖块,这在脚本中实现。所以在脚本中要访问子弹的Prefab,这时用到的代码是:
public GameObject 子弹;
保存后回到Unity,Main Camera属性下的“发射子弹”脚本会多出一个可以拖拽赋值的小槽,名字是子弹,把小球(的Prefab)当成子弹,拖到此小槽释放,就可以通过脚本访问子弹的Prefab了。
访问Prefab后,要对Prefab进行实例化,用到的脚本是:
GameObject.Instantiate(子弹,transform.position,transform.rotation);
Instantiate(实例化),会实例“子弹”这个Prefab的实例,并设定position(位置)和rotation(旋转)。
注意,这里的位置(transform.position)和旋转(transform.rotation)是脚本所在游戏物体的位置和旋转,不是实例的位置和旋转。
比如脚本挂载在相机下,那么创建实例并设定位置和选旋转后,实例的位置被设定为与相机的位置一样。(提醒自己不要像以前那样误解了。)
那么在什么条件下实例化子弹呢?应该按下鼠标左键才发射子弹,所以需要给实例化添加一个条件:
if(Input.GetMouseButtonDown(0))
{
GameObject.Instantiate(子弹,transform.position,transform.rotation);
}
意思是如果括号内的条件为真,就执行if方法,条件为假,就跳过。(Input.GetMouseButtonDown(0):在用户按下给定鼠标按钮的帧期间返回true。)