网站开发是无形资产怎么做网站端口代理

diannao/2026/1/19 19:08:07/文章来源:
网站开发是无形资产,怎么做网站端口代理,建筑安装公司,wordpress转帝国cmsAlex教程每一P的教程原代码加上我自己的理解初步理解写的注释#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Player.cs using System.Collections; using System.Collections.Generic…Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Player.cs using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine;public class Player : MonoBehaviour {[Header(Move Info)]public float moveSpeed;//定义速度与xInput相乘控制速度的大小public float jumpForce;[Header(Dash Info)][SerializeField] private float dashCooldown;private float dashUsageTimer;//为dash设置冷却时间在一定时间内不能连续使用public float dashSpeed;//冲刺速度public float dashDuration;//持续时间public float dashDir { get; private set; }[Header(Collision Info)][SerializeField] private Transform groundCheck;//transform类代表的时物体的位置,后面会来定位子组件的位置 [SerializeField] private float groundCheckDistance;[SerializeField] private Transform wallCheck;//transform类代表的时物体的位置,后面会来定位子组件的位置 [SerializeField] private float wallCheckDistance;[SerializeField] private LayerMask whatIsGround;//LayerMask类与Raycast配合https://docs.unity3d.com/cn/current/ScriptReference/Physics.Raycast.htmlpublic int facingDir { get; private set; } 1;private bool facingRight true;//判断是否朝右#region 定义Unity组件public Animator anim { get; private set; }//这样才能配合着拿到自己身上的animator的控制权public Rigidbody2D rb { get; private set; }//配合拿到身上的Rigidbody2D组件控制权#endregion#region 定义Statespublic PlayerStateMachine stateMachine { get; private set; }public PlayerIdleState idleState { get; private set; }public PlayerMoveState moveState { get; private set; }public PlayerJumpState jumpState { get; private set; }public PlayerAirState airState { get; private set; }public PlayerDashState dashState { get; private set; }public PlayerWallSlideState wallSlide { get; private set; }public PlayerWallJumpState wallJump { get; private set; }public PlayerPrimaryAttack primaryAttack { get; private set; }#endregionprivate void Awake(){stateMachine new PlayerStateMachine();//通过构造函数在构造时传递信息idleState new PlayerIdleState(this, stateMachine, Idle);moveState new PlayerMoveState(this, stateMachine, Move);jumpState new PlayerJumpState(this, stateMachine, Jump);airState new PlayerAirState(this, stateMachine, Jump);dashState new PlayerDashState(this, stateMachine, Dash);wallSlide new PlayerWallSlideState(this, stateMachine, WallSlide);wallJump new PlayerWallJumpState(this, stateMachine, Jump);//wallJump也是Jump动画primaryAttack new PlayerPrimaryAttack(this, stateMachine, Attack);//this 就是 Player这个类本身}//Awake初始化所以State为所有State传入各自独有的参数及animBool以判断是否调用此动画与animatoin配合完成private void Start(){anim GetComponentInChildrenAnimator();//拿到自己身上的animator的控制权rb GetComponentRigidbody2D();stateMachine.Initialize(idleState);}private void Update()//在mano中update会自动刷新但其他没有mano的不会故需要在这个updata中调用其他脚本中的函数stateMachine.currentState.update以实现 //stateMachine中的update{stateMachine.currentState.Update();//反复调用CurrentState的Update函数CheckForDashInput();}public void AnimationTrigger() stateMachine.currentState.AnimationFinishTrigger();//从当前状态拿到AnimationTrigger进行调用的函数public void CheckForDashInput(){dashUsageTimer - Time.deltaTime;//给dash上冷却时间if (IsWallDetected()){return;}//修复在wallslide可以dash的BUGif (Input.GetKeyDown(KeyCode.LeftShift) dashUsageTimer 0){dashUsageTimer dashCooldown;dashDir Input.GetAxisRaw(Horizontal);//设置一个值可以将dash的方向改为你想要的方向而不是你的朝向if (dashDir 0){dashDir facingDir;//只有当玩家没有控制方向时才使用默认朝向}stateMachine.ChangeState(dashState);}}//将Dash切换设置成一个函数使其在所以情况下都能使用public void SetVelocity(float _xVelocity, float _yVelocity){rb.velocity new Vector2(_xVelocity, _yVelocity);//将rb的velocity属性设置为对应的想要的二维向量。因为2D游戏的速度就是二维向量FlipController(_xVelocity);//在其他设置速度的时候调用翻转控制器}//控制速度的函数此函数在其他State中可能会使用但仅能通过player.SeVelocity调用public bool IsGroundDetected(){return Physics2D.Raycast(groundCheck.position, Vector2.down, groundCheckDistance, whatIsGround);}//通过RayCast检测是否挨着地面,https://docs.unity3d.com/cn/current/ScriptReference/Physics.Raycast.html//xxxxxxxx() xxxxxxxx xxxxxxxxxx() return xxxxxxxxx;public bool IsWallDetected(){return Physics2D.Raycast(wallCheck.position, Vector2.right * facingDir, wallCheckDistance, whatIsGround);}//通过RayCast检测是否挨着地面,https://docs.unity3d.com/cn/current/ScriptReference/Physics.Raycast.html//xxxxxxxx() xxxxxxxx xxxxxxxxxx() return xxxxxxxxx;private void OnDrawGizmos(){Gizmos.DrawLine(groundCheck.position, new Vector3(groundCheck.position.x, groundCheck.position.y - groundCheckDistance));//绘制一条从 from(前面的) 开始到 to后面的 的线。Gizmos.DrawLine(wallCheck.position, new Vector3(wallCheck.position.x wallCheckDistance, wallCheck.position.y));//绘制一条从 from(前面的) 开始到 to后面的 的线。}//画线函数public void Flip(){facingDir facingDir * -1;facingRight !facingRight;transform.Rotate(0, 180, 0);//旋转函数,transform不需要额外定义因为他是自带的}//翻转函数public void FlipController(float _x)//目前设置x目的时能在空中时也能转身{if (_x 0 !facingRight)//当速度大于0且没有朝右时翻转{Flip();}else if (_x 0 facingRight){Flip();}} }PlayerState.cs using System.Collections; using System.Collections.Generic; using System.Security.Authentication.ExtendedProtection; using UnityEngine; //被继承的总类后面的所以state都需要继承它 //实际上Player并没有进入过这个状态没有调用此脚本所有的调用均属于此脚本的子脚本 public class PlayerState {protected PlayerStateMachine stateMachine;//创建PlayerStateMachine类以承接来自Player.cs传过来的东西protected Player player;//创建Player类以承接来自Player.cs传过来的东西protected float stateTimer;protected bool triggerCalled;//动画是否完成控制值#region Unity组件protected Rigidbody2D rb;//纯简化将player.rb -- rb#endregionprivate string animBoolName;//控制此时的anim的BOOL值protected float xInput;//设置一个可以保存当前是否在按移动键的变量protected float yInput;public PlayerState(Player _player,PlayerStateMachine _stateMachine,string _animBoolName){this.player _player;this.stateMachine _stateMachine; this.animBoolName _animBoolName;}//构造函数用于传递信息public virtual void Enter(){player.anim.SetBool(animBoolName, true);//通过animator自带的函数将animator里的Bool值改变为想要的值rb player.rb;//纯简化将player.rb -- rbtriggerCalled false;//默认为false表示没有完成动画}public virtual void Update(){stateTimer - Time.deltaTime;//https://docs.unity3d.com/cn/current/ScriptReference/Time-deltaTime.html//从上一帧到当前帧的间隔以秒为单位只读。这个表达式就是表示每一帧都不断的减少时间player.anim.SetFloat(yVelocity, rb.velocity.y);//通过animator自带的函数将animator里的Float值改变为想要的值,改变yVelocity以控制Jump与Fall动画的切换xInput Input.GetAxisRaw(Horizontal);//对于键盘和游戏杆输入该值将处于 -1...1 的范围内。 由于未对输入进行平滑处理键盘输入将始终为 -1、0 或 1。 如果您想自己完成键盘输入的所有平滑处理这非常有用。yInput Input.GetAxisRaw(Vertical);}public virtual void Exit(){player.anim.SetBool(animBoolName, false);//通过animator自带的函数将animator里的Bool值改变为想要的值}public virtual void AnimationFinishTrigger(){triggerCalled true;}//动画控制函数当动画完成时将控制器设置为true表达其动画已经完成了 }PlayerGroundState.cs using System.Collections; using System.Collections.Generic; using UnityEngine; //GroundState用于保证只有在Idle和Move这两个地面状态下才能调用某些函数并且稍微减少一点代码量 public class PlayerGroundState : PlayerState {public PlayerGroundState(Player _player, PlayerStateMachine _stateMachine, string _animBoolName) : base(_player, _stateMachine, _animBoolName){}public override void Enter(){base.Enter();}public override void Exit(){base.Exit();}public override void Update(){base.Update();if(Input.GetKeyDown(KeyCode.Mouse0))//p38 2.从ground进入攻击状态{stateMachine.ChangeState(player.primaryAttack);}if(player.IsGroundDetected()false){stateMachine.ChangeState(player.airState);}// 写这个是为了防止在空中直接切换为moveState了。if (Input.GetKeyDown(KeyCode.Space) player.IsGroundDetected()){stateMachine.ChangeState(player.jumpState);}//空格切换为跳跃状态}}PlayerPrimaryAttack.cs using System.Collections; using System.Collections.Generic; using UnityEngine;public class PlayerPrimaryAttack : PlayerState {//p38 2.从ground进入public PlayerPrimaryAttack(Player _player, PlayerStateMachine _stateMachine, string _animBoolName) : base(_player, _stateMachine, _animBoolName){}public override void Enter(){base.Enter();}public override void Exit(){base.Exit();}public override void Update(){base.Update();if(triggerCalled){stateMachine.ChangeState(player.idleState);}} }PlayerAnimationTrigger.cs using System.Collections; using System.Collections.Generic; using UnityEngine;public class playerAnimationTriggers : MonoBehaviour {private Player player GetComponentInParentPlayer();//获得夫组件上的实际存在的Player组件private void AnimationTrigger(){player.AnimationTrigger();} }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/90243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个成功网站要素主要有哪些字体设计类网站

确定碰撞体积 选择rigidbody2d,创建player重力 创建player碰撞体积 创建瓦片地图碰撞体积 使平台变成一个整体 ​​​​​ 设置Body Type为Static(避免平台也因为重力影响下落) 回到Player,在Rigidbody2D中设置为冻结旋转 Player设…

东莞门户网站建设方案网站设计方案书

我需要一些可能非常基本的帮助.我正在研究一个接收这些可能的输入字符串的PHP函数(这些是示例,它可以是任何分辨率):1600x9001440x9001366x7681360x7681280x10241280x8001024x10241024x768640x960320x480320x480etc我想处理这些字符串中的任何一个并返回适当的宽高比…

网站单页做301南京企业网站设计

目录 一、特征统计量 1.概率分布 2.特征统计量 二、平稳时间序列的定义 严平稳与宽平稳的关系 三、平稳时间序列的统计性 四、平稳性的重大意义 五、平稳性检验 时序图检验 自相关图检验 R绘图 一、特征统计量 平稳性是某些时间序列具有的一种统计特征要描述清楚这个…

车辆对比那个网站做的好效果图网站发帖平台

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvueuniapp的智能小程序商城管理系统(源代码数据库15000字论文)120 一、系统介绍 本项目前后端分离,分为用户、商家、管理员三种角色 1、用户&#…

视频网站后台模板延庆营销型网站建设

主要内容:进程之间的通信与端口、UDP协议、TCP协议、可靠传输原理(停止等待协议、ARQ协议)、TCP报文首部、TCP三大题:滑动窗口、流量控制、拥塞控制机制 5.1 运输层协议概述 运输层向它上面的应用层提供通信服务,真正…

六盘水网站设计个人网站在那建设

冗余拓扑: 环路带来的问题:广播风暴;帧的重复复制;交换机MAC地址表的不稳定。 STP相关概念: 桥ID;端口ID;根桥;非根桥;根端口;指定端口;阻塞端口&…

做的好的网站着陆页学生做义工网站

更改了半天,保存的了很多次,错误也改掉了,但是还是报同一个错误,很痛苦~搜了半天,终于搞定了,方法总结如下:一 可能是有一些文件没报存,设置让其自动保存:1 Windows-&g…

个人备案网站会影响吗公司备案证查询网站查询网站

《操作系统导论》第15章读书笔记:机制:地址转换(address translation) —— 杭州 2024-03-30 夜 文章目录 《操作系统导论》第15章读书笔记:机制:地址转换(address translation)1.前…

推广公司的网站宁夏网站建设一条龙

1. 发现动作 1.1. 时间跨度长的智能行为,需要具备在多个抽象层次上分层规划和管理活动的能力,从攻读博士学位(可能涉及1万亿个动作),到给一根手指发送一个运动控制指令,从而键入求职信的字符,无…

简单做网站深圳网站建设小程序

背景容器技术的一个最佳实践是构建尽可能精简的容器镜像。但这一实践却会给排查问题带来麻烦:精简后的容器中普遍缺失常用的排障工具,部分容器里甚至没有 shell (比如 FROM scratch )。在这种状况下,我们只能通过日志或者到宿主机…

html5做宠物饲养网站包括哪些内容

jdk10 换成jdk8JDK 10通过发行JDK-8173425 引入了Javadoc标签{summary} (“ Javadoc需要一个新标签来指定摘要。”)。 这个新标签允许开发人员显式指定Javadoc注释的哪一部分出现在“摘要”中,而不是依靠Javadoc的默认处理来寻找一段时间和空…

广州哪个网站建设公司好pc网站优势

软件可靠性基础 软件可靠性基本概念串并联系统可靠性计算软件可靠性测试软件可靠性建模软件可靠性管理软件可靠性设计容错,检错的技术 选择题考基本概念(MTBF),很少考 非重点 软件可靠性基本概念 这个章节中,第一个…

帮助做APP的网站公司网站服务器停止响应是什么意思

本地仓库是远程仓库的一个缓冲和子集,当你构建Maven项目的时候,首先会从本地仓库查找资源,如果没有,那么Maven会从远程仓库下载到你本地仓库。这样在你下次使用的时候就不需要从远程下载了。如果你所需要的jar包版本在本地仓库没有…

成都网站定制中心天津电力建设公司怎么样

数据手册Datasheet解读笔记1-肖特基二极管 数据手册大体结构共包含10个部分肖特基二极管-SS14第一重点关注点:极限值第二重点关注点:电气特性 数据手册大体结构共包含10个部分 1.Features一特性 2.Application一应用 3.Description一说明4.Pin Configur…

python网站建设叮咚影视在线观看免费完整版

本文面向已经了解/熟悉git基本命令但是并不熟悉如何使用GitHub进行多人协作开发项目的同学。 为了简单起见,这里假设只有两个开发人员,HuanianLi 和 DaxiangLi。他们在GitHub上的地址和角色为: HuanianLi: https://github.com/huanianli # M…

网站建设捌金手指花总八建设旅游景点的网站的好处

题目描述 原题来自:HAOI 2008 有 n个小朋友坐成一圈,每人有 ai 颗糖果。每人只能给左右两人传递糖果。每人每次传递一颗糖果的代价为 1 。求使所有人获得均等糖果的最小代价。 输入格式 第一行有一个整数 ,n表示小朋友个数; …

重庆网站查询海南直聘网

Alt← 前一个编辑的页面 Alt→ 下一个编辑的页面 AltEnter 显示当前选择文件的属性 CtrlF11运行Run As CtrlM 当前窗口最大化 CtrlF7 视窗口切换 CtrlF8 模式切换 CtrlQ 定位到最后编辑的地方 CtrlL 定位在具体某行 CtrlK 选中的Word快速定位到下一个 ctrl.及ctrl1 当某行出错时…

徐州网站建设 网站推广怎样备份网站

这篇文章不是介绍DOCKER是什么,也不是阐述DOCKER的核心:镜像/容器和仓库之间的关系,它只是一篇让刚刚接触DOCKER的初学者,在没有完全了解DOCKER是什么之前,也能尽快的在Linux系统下面通过DOCKER来搭建一个LAMP环境,这是其一&#…

网站设计作品网站怎么做外链

目录 前言 list的反向迭代器 list.h文件 ReverseIterator.h文件 test.cpp文件 前言 迭代器按性质分类: 单向:forward_list双向:list随机:vector / deque 迭代器按功能分类: 正向反向const list的反向迭代器…

可以查企业备案的网站国外 wordpress 免费空间

ts 枚举类型介绍 TypeScript的枚举类型是一种特殊的数据类型,它允许开发者为一组相关值定义一个共同的名称,使我们可以更清晰、更一致地使用这些值。 枚举类型在TypeScript中用enum关键字定义,每个枚举值默认都是数字类型,从0开…