子弹挂载的代码
通过奇偶判断是否击杀
奇数次:打开机器人AI脚本
偶数次:关闭机器人AI脚本并修复机器人
//子弹命中
private void OnCollisionEnter2D(Collision2D collision)
{
//调用机器人控制脚本的修复函数,修改机器人的状态
RobotControl ec = collision.gameObject.GetComponent<RobotControl>();
if (ec!=null)
{
ec.Fixed();//杀敌
if (RobotControl.isFixed%2==0)
{
collision.gameObject.GetComponent<AIPath>().enabled = false;
PlayerControl.enemyleft--;//更改玩家控制中的击杀数,以此判断任务是否完成,格式:脚本名.静态变量--;
Debug.Log("当前敌人数:" + PlayerControl.enemyleft);
}
if (RobotControl.isFixed%2 != 0)
{
//打开命中对象的AI组件
collision.gameObject.GetComponent<AIPath>().enabled = true;
//collision.gameObject.GetComponent<RobotControl>().enabled = false;
//RobotControl.AIon();
//ScriptSelect.changestatus();
}
Debug.Log("命中敌人了");
}
//播放命中声
AudioManager.instance.AudioPlay(hitClip);
//立即销毁子弹
Destroy(this.gameObject);
}
机器人控制代码
修复函数
public void Fixed()
{
isFixed--;
Debug.Log("IsFixed:" + isFixed);
if (isFixed%2==0)
{
AIoff();
//ScriptSelect.closeAI();
if (brokeneffect.isPlaying == true)
{
brokeneffect.Stop();
}
AudioManager.instance.AudioPlay(fixedClip);
rbody.simulated = false;//禁用物理
anim.SetTrigger("fix");//播放被修复(打)的动画
//加载预制体资源,掉落子弹
RandomDrop();
}
}
附完整教程:
原博地址
https://blog.csdn.net/weixin_43673589