绘制子弹效果
1.鼠标单击物体实例化的触发
public class Turn : MonoBehaviour
{
void Update()
{
if(Input.GetKeyDown (KeyCode.Mouse0))//点击鼠标会触发的效果
{
GameObject Orange = Instantiate () as GameObject;//物体实例化,需要在括号中标注实例化的物体
}
}
}
2.在创建物体实例化时需要先创造两个变量,在触发中设置了Orange对象,所以要设置目标变量:对象,对象即生成的物体
public class Turn : MonoBehaviour
{
public GameObject Mubiao;
public GameObject Duixiang;
//申请公有变量可以在面板查看一些东西,设置私有变量ptivate可以节省一些资源,会使场景游戏更加流畅
+第一步中的代码
3.将代码内容绑定在主摄像机上,会在属性面板出现变量Mubiao和Duixiang
4.创建一个球(Sphere)为对象,将其位置改为0,0,0;在Assets中单击右键选择Create>Material更换材质;将出现的材质球更改名字为black,并改变颜色;将材质球拖到Hierarchy>Sphere上,使小球染色;再将小球拖到材料面板上变成预制物体(Assets),再将Hierarchy上的Sphere删除
5.点开主相机,将预制物体拖拽到属性面板的Duixiang框中
6.设置目标点>创建空物体:在菜单栏的GameObject中创建(选第一个)并将其坐标设置为(0,0,0)//此时,球会在目标点生成
void Update()
{
if(Input.GetKeyDown (KeyCode.Mouse0))//点击鼠标会触发的效果
{
GameObject Orange = Instantiate (Duixiang ) as GameObject;//物体实例化,需要在括号中标注实例化的物体
Orange.transform.position = Mubiao.transform.position;//当小球到达这个目标位置时,出现
Orange.transform.rotation = Mubiao.transform.rotation;//子弹不应该是圆形,而是胶囊体型,设置旋转
}
}
前面的代码不发生改变
7.需要将Hierarchy中的GameObject改名字为代码中的Mubiao,并将它拖拽到属性面板的Mubiao中,这样就可以才能不报错,点击播放,此时单击左键会生成很多个黑色小球(子弹)
8.选中预制物体Sphere,在属性面板中添加physics>Rigidbody,此时点击播放,单击鼠标多次单击会出现多个小球,在Y轴上叠加。
9.制作子弹效果,则需要小球能进行位移,创建一个新的脚本,命名为“Zidan”,在Update中给子弹一个正方向的位移(或者在Start中给一个力)代码:
public class zidan : MonoBehaviour
{
void Start()
{
}
void Update()
{
transform.Translate(0.4f, 0, 0);//此时给了子弹一个正方向的位移
}
}
10.将“Zidan”脚本绑在Sphere的预制物体上,在属性面板中选择Add Component>Scripts>Zidan即可绑定脚本。此时单击,可以生成子弹向一个方向移动的效果。
11.调整子弹的大小和位移的速度。
备注:最终Turn的代码内容
public class Turn : MonoBehaviour
{
public GameObject Mubiao;
public GameObject Duixiang;//申请公有变量可以在面板查看一些东西,设置私有变量ptivate可以节省一些资源,会使场景游戏更加流畅
void Update()
{
if(Input.GetKeyDown (KeyCode.Mouse0))//点击鼠标会触发的效果
{
GameObject Orange = Instantiate (Duixiang ) as GameObject;//物体实例化,需要在括号中标注实例化的物体
Orange.transform.position = Mubiao.transform.position;//当小球到达这个目标位置时,出现
Orange.transform.rotation = Mubiao.transform.rotation;//子弹不应该是圆形,而是胶囊体型,设置旋转
}
}
}