本案例来源于unity唐老狮,有兴趣的小伙伴可以去泰克在线观看该课程
【唐老狮】Unity实现 即时战略游戏 阵型功能 - 泰课在线 -- 志存高远,稳如泰山 - 国内专业的在线学习平台|Unity3d培训|Unity教程|Unity教程 Unreal 虚幻 AR|移动开发|美术CG - Powered By EduSoho (taikr.net)
我只是对重要功能进行分析和做出笔记分享,并未无师自通,吃水不忘打井人
本案例的实现流程图
地形和模型
为地形添加导航网格表面组件,方便以后寻路控制
为士兵添加动画,碰撞器,导航代理和士兵脚本组件,同时以空物体作为父节点,添加选中特效(话说这些模型怎么这么眼熟😋)
编写士兵单位脚本
目前需要什么?请看下图
上代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;public class SoliderObj : MonoBehaviour
{private Animator animator;private NavMeshAgent agent;private GameObject footEEffect;private void Start() {//初始化变量animator = GetComponentInChildren<Animator>();agent = GetComponent<NavMeshAgent>();footEEffect = transform.Find("FootEffect").gameObject;//默认光圈不显SetFootEffect(false);}//移动方法public void SoliderMove(Vector3 target) {agent.SetDestination(target);}//切换动画public void SwitchAnimator(){animator.SetBool("S2W",agent.velocity.magnitude>0.1);}//切换光圈显隐public void SetFootEffect(bool b){footEEffect.SetActive(b);}}