unity实现AI对战坦克

unity实现AI对战坦克

游戏要求

  • 使用“感知-思考-行为”模型,建模 AI 坦克
  • 场景中要放置一些障碍阻挡对手视线
  • 坦克需要放置一个矩阵包围盒触发器,以保证 AI 坦克能使用射线探测对手方位
  • AI 坦克必须在有目标条件下使用导航,并能绕过障碍。(失去目标时策略自己思考)
  • 实现人机对战

具体实现

参考师兄的博客https://blog.csdn.net/Jenny_Shirunhao/article/details/103337423,Bake生成导航网格图之前的步骤就不赘述了,烘焙效果如下:
在这里插入图片描述
为AI坦克添加脚本使其能够跟踪玩家的坦克

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;

public class TrackTarget : MonoBehaviour
{
    public GameObject target;
    NavMeshAgent nav;
    void Start()
    {
        nav = GetComponent<NavMeshAgent>();
    }

    void OnTriggerEnter(Collider collider)
    {
        if (collider.gameObject.tag == "Player")
        {
            nav.SetDestination(target.transform.position);
        }
    }
}

AI通过碰撞体的tag来判断是否是玩家,为使上面代码正常运行,需要给AI坦克增加碰撞体,以及将玩家坦克的标签设为Player。

在这里插入图片描述

AI坦克还不够多,再在地图上放几个。

使AI坦克发射炮弹

修改Fire_Control_CS的代码如下:

float count = 4.0f;
void Update ()
		{
			if (idScript.isPlayer) {
				#if UNITY_ANDROID || UNITY_IPHONE
				Mobile_Input ();
				#else
				Desktop_Input ();
				#endif
			}
			else
            {
                count -= Time.deltaTime;
                if(count <= 0)
                {
                    Fire();
                    count = 4.0f;
                }
            }
		}

坦克还不够多,再在地图上放几个。
在这里插入图片描述

腹背受敌,要的就是这种感觉。

坦克默认,受到攻击时显示血条,为了时刻能显示玩家的血条,修改Damage_Control_CS代码如下:

	if(idScript.isPlayer)
    {
        displayScript.Get_Damage(durability, initialDurability);
    }
	// Destruct
	if (idScript.isPlayer) {
	#if UNITY_ANDROID || UNITY_IPHONE
	if (CrossPlatformInputManager.GetButtonDown ("Destruct")) {
	#else
	if (Input.GetKeyDown (KeyCode.Return)) {
	#endif
	Start_Destroying ();
	}
	}

保存运行,看到血条如下:
在这里插入图片描述

游戏效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

仓库地址

github链接

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity是一个强大的游戏开发引擎,借助其丰富的功能和易用的界面,可以实现各种复杂的游戏效果,包括AI换脸。 实现AI换脸涉及到图像处理和人工智能技术,在Unity中可以借助一些开源的工具和插件来实现。 首先,我们需要使用图像处理技术来识别人脸,并将其提取出来。Unity中可以使用OpenCV这样的工具库来进行人脸识别和特征点提取。通过分析图像中的特征点,我们可以确定人脸的位置和形状。 接下来,我们需要使用机器学习和深度学习技术来实现AI换脸。可以使用神经网络模型,如人脸关键点检测模型(face landmark detection),将两个人脸的特征点进行匹配和对齐,从而实现两个人脸的对换。也可以使用生成对抗网络(GAN)来生成逼真的换脸效果。 在Unity中,我们可以使用TensorFlow或PyTorch等深度学习框架来训练和部署模型,并将其集成到Unity项目中。通过将AI模型与Unity中的游戏对象进行绑定,我们可以实现实时的AI换脸效果。 此外,在Unity中还可以使用Shader来实现更加逼真的换脸效果。通过编写自定义的Shader代码,我们可以控制透明度、光照、纹理等方面,使换脸效果更加真实。 综上所述,使用Unity实现AI换脸需要借助图像处理和人工智能技术,可以通过使用开源工具和插件、深度学习框架、自定义Shader等方法来实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值