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

帮别人做网站的公司是外包吗阿里云个人网站建设书

帮别人做网站的公司是外包吗,阿里云个人网站建设书,360seo,深圳数字展厅文章目录 前言一、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/a/513887.html

相关文章:

  • 网站免费模版厦门企业自助建站
  • 上海网站建设培训承德网站设计
  • 网站demo要几个人做齐家网装修口碑怎么样
  • 阐述电子商务网站的建设流程电商网站建设与课程设计
  • 网站开发选题依据微信打卡小程序怎么弄
  • 我自己做的网站打开很慢网站维护协议书
  • 网上怎么开店卖产品seo优化搜索推广
  • 有域名 空间如何建网站asp网站图片轮播代码
  • AI+Linux 命令高效提取大量日志数据
  • python网站开发pdf什么是手机app
  • 清河县网站建设做英文网站有哪些
  • 当阳网站建设网站结构化数据
  • 网站建设xiu021十大网站有哪些
  • 蓝图网站建设页面设计软件排行
  • 用手机能建网站吗wordpress 多用户插件
  • 德州网站建设哪家好长沙建筑公司排名
  • 2003网站建设大数据获客
  • 石排网站仿做中方元建设工程 网站
  • pc网站运营把两个网站合并到一个网页
  • 课程视频网站建设的必要性wordpress搜索功能主题
  • 建立一个个人网站类似12306网站开发
  • 诺诚建设工程有限公司网站高质量免费的网站
  • 无锡哪里做网站好视频制作网
  • 做网站横幅技巧民治网站建设
  • 网站开发接口文档浙江企业年报网上申报入口
  • 辽宁咨发建设监理预算咨询有限公司网站中建八局第一建设有限公司装饰
  • 软考系规:论文写作子题目预测及写作提示
  • cms网站建设的优缺点创意摄影网站
  • 长沙做网站大概多少钱上海网络推广公司兴怡
  • 怎样编辑网站标题长春网络推广服务