首页 > 其他分享 >【unity】学习制作类银河恶魔城游戏-5-

【unity】学习制作类银河恶魔城游戏-5-

时间:2025-01-01 11:40:50浏览次数:6  
标签:脚本 创建 代码 恶魔城 状态机 player unity 银河 rb

在-1---4-中,了解了unity的基础操作,从创建一个人物开始,通过状态机和代码完善人物的各种功能达到预期效果,随着功能的越来越多,状态机的处理也就越发麻烦,因此,从零开始设计一个合理的状态机很有必要

梦开始的地方

创建一个新的项目

修改舒服的布局


创建状态机,通过脚本控制状态机

创建脚本

编写PlayerStart脚本

编写PlayerStateMachine脚本

创建并编写PlayerIdleState脚本

alt + enter 快速生成构造函数

同理生成override


同理创建并编写PlayerMoveState

编写Player脚本

以上,状态机完成

导入素材

创建Animator controller,并导入

打开窗口

创建Player Idle动画

创建PlayerMove动画

创建转换条件Bool

状态树如下,设置条件和过渡时间

配置控制器

完善PlayerState代码

重构代码

#region #endregion 创建一片可折叠空间

作用:可以折叠起来,更整洁

移动和静止状态

创建一个平台

给人物创建刚体,创建碰撞体积,模型中心点对其,冻结Z轴

PayerStates

PlayerIdleState

PlayerMoveState

让他动起来

player


PlayerMoveState

将脚本应用给Player

人物成功动了起来,相比于之前的处理方式,这样代码逻辑更为简洁(学习难度也更高)

添加移动速度

应用移动速度

rb在player中定义,传值给Playerstate类,在子类PLayerMoverState中使用


新的状态PLayerGroundState

修改PlayerIdleState和playerMoveState的继承关系

创建新的动作


创建混合树


完善状态树,记得修改过度时间和判断条件

创建一个和PLayerGroundState相对的PlayerAirState,创建PlayerJumpState
同理继承框架

在Player中声明


编辑具体的跳跃代码

编译具体的Air代码

编译具体的Ground代码

Debug:前文中代码写错导致报错

修改,一定要注意大小写!!

Debug:PlayerStateMachine的命名不规范

修改,PLayerStateMachine继承错误,不能继承MonoBehaviour

Debug:错误的实例化对象

修改,在有rb的代码前面加上player就好了,推测原因是rb传参中出了问题
经检查是PLayerState中少了定义

现在将player.rb.简化为rb.成功运行

增加跳跃力量高度

应用

给状态机的yVelocity赋值

标签:脚本,创建,代码,恶魔城,状态机,player,unity,银河,rb
From: https://www.cnblogs.com/plusu/p/18638256

相关文章

  • 并非银河战舰,皮划艇也能启航
    目录标题一、学期回顾1.1回顾对软工课程的想象1.2回顾在这门课程中的投入与产出1.3最印象深刻的答辩二、总结收获2.1自己的人月神话2.2学习到的新技术和生产力工具2.3除了技术之外,还得到了哪些提升2.4对下一届实践的建议三、致谢这个作业属于哪个课程https://edu.cnbl......
  • Unity URP实现漫画板效果
    参考:UE用Masked做视差漫画板(新手向)可以分成两个部分,一块是画框,一块是绘制框内的内容(以下实现都默认所有顶点在同一平面上)。画框创建透明unlit材质,计算边框区域并且着色。创建一个脚本(CreateMesh.cs下称CreateMesh)用于创建和控制四边形网格,CreateMesh可以控制的参数有四个顶......
  • Unity批处理修改prefab内容并保存
    EditorUtility.DisplayProgressBar("ModifyPrefab","Pleasewait...",0);string[]ids=AssetDatabase.FindAssets("t:Prefab",newstring[]{"Assets/Resources/Prefabs"});for(inti=0;i<ids.Length;i++){......
  • WPF笔记13——CommunityToolKit.Mvvm
    1、[ObservableProperty]标记private字段上有[ObservableProperty]标记,CommunityToolkit.Mvvm会自动给它生成一个对应的public属性,并在属性值改变时自动触发属性变更通知。2、[ObservableObject]标记ObservableObject类型实现了实现了INotifyPropertyChanged和INotifyProperty......
  • 【从零开始入门unity游戏开发之——unity篇01】unity6基础入门开篇——游戏引擎是什么
    文章目录前言**游戏引擎是什么?****游戏引擎对于我们的意义**1、**降低游戏开发的门槛**2、**提升游戏开发效率****以前做游戏****现在做游戏****主流的游戏引擎有哪些?**Unity相比其他游戏引擎的优势?**为什么选择Unity?**Unity游戏市场占比unity发展前景刚发布不久的Unit......
  • 基于 Unity 引擎的 VR/AR 音视频编解码技术总结
    在VR/AR应用开发中,音视频编解码技术是实现沉浸式体验的关键环节之一。通过高效的音视频处理,可以实现实时通信、虚拟会议、在线视频流、沉浸式音频等功能。本文将围绕Unity引擎的VR/AR开发需求,系统总结音视频编解码的技术原理、常用工具、实现方案及优化策略。1.VR/AR......
  • Unity 引擎实现动作游戏技能和战斗功能的实现与优化
    动作游戏的核心在于流畅的技能与战斗系统,这包括打击判定、技能表现、战斗逻辑以及联机对战等多个关键模块。以下从技能系统实现、打击判定、表现优化和联机功能等方面详细总结Unity引擎如何实现和优化动作游戏的战斗功能。1.技能系统的实现动作游戏的技能系统通常涉及技......
  • 【unity】学习制作类银河恶魔城游戏-4-
    制作攻击计数器给全部攻击动作应用帧事件但是理想情况下应该是,短间隔时间内连续点击鼠标才能连击,加入连击计时器编辑代码修补“桶子”解决攻击时移动的问题解决冲刺时攻击的问题解决无方向键输入时原地冲刺的问题解决空中攻击无法掉落的问题继承“inheritance......
  • 【Unity架构插件】Soap 是一款基于 ScriptableObject 模式的 Unity 插件,旨在通过采用
    Soap是一款基于ScriptableObject模式的Unity插件,旨在通过采用一种清晰且模块化的架构模式,简化项目中的数据管理、事件处理和跨模块的通信。Soap提供了一个轻量级、易于扩展和维护的解决方案,帮助开发者在Unity项目中实现更高效、更清晰的代码结构。主要特点Scriptab......
  • 【Unity 像素风格植物图标资源包】Vegetation Icons 32×32 Pixel Art 包含大量32x32
    VegetationIcons32×32PixelArt是一款专为Unity开发者设计的像素风格植物图标资源包。该插件包含大量32x32像素大小的植物图标,适用于2D游戏中需要使用植物、树木、花卉等自然元素的场景。无论是为游戏中的UI、物品栏、任务列表还是资源管理系统提供图标,还是作为游戏内环......