当前位置: 首页 > wzjs >正文

武汉网站设计公司官网青岛网站优化公司哪家好

武汉网站设计公司官网,青岛网站优化公司哪家好,模板网站如何引擎收录,北京网站开发服务文章目录 前言一、Navigation 智能导航地图烘焙1.创建Plan和NavMesh Surface2.智能导航地图烘焙 二、MouseManager 鼠标控制人物移动1.给场景添加人物,并给人物添加导航组件2.编写脚本管理鼠标控制3.给人物编写脚本,订阅事件(添加方法给Mouse…

文章目录

  • 前言
  • 一、Navigation 智能导航地图烘焙
    • 1.创建Plan和NavMesh Surface
    • 2.智能导航地图烘焙
  • 二、MouseManager 鼠标控制人物移动
    • 1.给场景添加人物,并给人物添加导航组件
    • 2.编写脚本管理鼠标控制
    • 3.给人物编写脚本,订阅事件(添加方法给MouseManager的OnMouseClick)
    • 目前效果展示
  • 三、添加人物移动动画
    • 1.制作运动动画
    • 2.将动画机添加给人物
    • 3.关联人物速度给动画
    • 最终效果展示


前言

Uniyt版本:2022.3
实现内容:
1.点击地图,人物移动到点击位置
2.给人物添加移动动画

效果展示:
请添加图片描述

使用素材:
人物素材

  • 导入人物素材:
    Window->Package
    在这里插入图片描述

  • 22.3需要导入AI Navigation包

  • 在这里插入图片描述

一、Navigation 智能导航地图烘焙

1.创建Plan和NavMesh Surface

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

2.智能导航地图烘焙

在这里插入图片描述
下面展示烘焙完的效果:
在这里插入图片描述

二、MouseManager 鼠标控制人物移动

1.给场景添加人物,并给人物添加导航组件

人物属性栏Y轴改为0.5
在这里插入图片描述
在这里插入图片描述
添加导航组件:
在这里插入图片描述

2.编写脚本管理鼠标控制

创建脚本:MouseManager
脚本为设计为单例模式,场景中只需要一个。


using System;
using UnityEngine;public class MouseManager : MonoBehaviour
{//静态对象,其他脚本可以通过这个对象来调用当前类的方法public static MouseManager Instance;void Awake(){if(Instance!=null){Debug.LogError("存在多个对象,可能存在问题");Destroy(gameObject);}Instance = this;}//事件,我认为是方法集,其他脚本可以通过这个添加一个放过进来,此脚本会在合适时机执行里面的方法public event Action<Vector3> OnMouseClick;RaycastHit hitInfo;//射线碰撞的对象的信息结构体void Update(){MouseControl();}void MouseControl(){Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//Input.GetMouseButtonDown(0)按下鼠标左击返回为trueif (Input.GetMouseButtonDown(0)&&Physics.Raycast(ray, out hitInfo)){Debug.Log("鼠标被点击了");//如果点击地面就拿到点击位置给方法集if(hitInfo.collider.gameObject.CompareTag("Ground")){Debug.Log(hitInfo.point);//?是表示如果方法集里不为空执行后面操作OnMouseClick?.Invoke(hitInfo.point);}}}}

创建空对象命名为MouseManager挂载脚本
在这里插入图片描述

3.给人物编写脚本,订阅事件(添加方法给MouseManager的OnMouseClick)

using UnityEngine;
using UnityEngine.AI;public class MouseController : MonoBehaviour
{NavMeshAgent agent;void Awake(){agent = GetComponent<NavMeshAgent>();}void Start(){//添加方法到放过方法集里-订阅MouseManager.Instance.OnMouseClick += MoveToTarget;}//告诉agent目标位置public void MoveToTarget(Vector3 target){//设置这个变量,人物就会向目标方向移动agent.destination = target;}
}

添加脚本给人物:
在这里插入图片描述

目前效果展示

请添加图片描述

三、添加人物移动动画

1.制作运动动画

运动动画有三种状态:待机,走,跑
三种状态可以通过速度来更改状态动画

  • 创建Animator Controller命名为Player
    在这里插入图片描述
    双击进入动画机界面,右键空白位置,创建混合树
    在这里插入图片描述
    在这里插入图片描述

双击混合树,添加Float变量命名为Speed:
在这里插入图片描述

修改混合树参数,添加通过三种动画到混合树里
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.将动画机添加给人物

在这里插入图片描述

3.关联人物速度给动画

通过脚本MouseContorller将速度给动画机的Speed变量

using UnityEngine;
using UnityEngine.AI;public class MouseController : MonoBehaviour
{NavMeshAgent agent;Animator anim;void Awake(){agent = GetComponent<NavMeshAgent>();anim = GetComponent<Animator>();}void Start(){//添加方法到放过方法集里-订阅MouseManager.Instance.OnMouseClick += MoveToTarget;}void Update(){anim.SetFloat("Speed", agent.velocity.sqrMagnitude);}//告诉agent目标位置public void MoveToTarget(Vector3 target){//设置这个变量,人物就会向目标方向移动agent.destination = target;}
}

最终效果展示

请添加图片描述

http://www.dtcms.com/wzjs/347572.html

相关文章:

  • 动漫做视频在线观看网站郑州seo顾问外包公司
  • 建设银行无锡分行网站网站点击排名优化
  • 网站的建设建议中国十大营销策划公司排名
  • 做网站的属于什么专业今日军事新闻头条视频
  • 商业网站的规划和设计西安百度首页优化
  • 衢州做网站公司域名解析查询工具
  • 对网站做维护搜索引擎优化seo
  • 竞网做的网站怎么seo有哪些优缺点?
  • 英文网站建设方案广告联盟平台
  • 专业的外贸网站帮忙推广的平台
  • 江西网络推广外包seo网站管理
  • 网站开发方向的工作百度网盘网页版登录入口
  • 超市网站建设武汉seo顾问
  • 武汉网站建设十强企业目前最火的推广平台
  • 眉山网站建设网站视频
  • 网站被k什么意思万网阿里云域名查询
  • 网站建设工作基本流程互联网广告投放代理公司
  • 2015wordpress相册插件济南seo优化公司助力排名
  • 企业网站建设思路四川seo优化
  • 县城做二手车网站seo网站优化建议
  • 东莞抖音推广合作潍坊网站seo
  • 有没有做家居服设计师看的网站关键词排名优化系统
  • 企业形象成品网站最好看免费观看高清视频了
  • 东莞樟木头做网站哪家好windows优化大师官网
  • 动画设计就业前景优化营商环境个人心得
  • 淘宝上做网站权重磁力宝最佳搜索引擎入口
  • 网站搜索引擎优化怎么做建设企业营销型网站
  • 做网站需要服务器么苏州seo按天扣费
  • 企业cms建站站长之家网站排行榜
  • go 语言 做网站谷歌浏览器下载安装2021最新版