有人可以告诉我这个代码有什么问题,但我的播放器飞上天了。我刚开始编码,但请帮帮我。
此代码的开头从此处开始:
using System.Collections;
使用系统。集合。泛型;使用UnityEngine
公共类玩家控制器:MonoBehaviour{
private Rigidbody2D rb;
public float speed;
public float jumpForce;
private float moveInput;
private bool isGrounded;
public Transform feetPos;
public float checkRadius;
public LayerMask whatIsGround;
private float jumpTimeCounter;
public float jumpTime;
private bool isJumpimg;
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
private void FixedUpdate()
{
moveInput = Input.GetAxisRaw("Horizontal");
rb.velocity = new Vector2(moveInput * speed, rb.velocity.y);
}
void Update()
{
isGrounded = Physics2D.OverlapCircle(feetPos.position, checkRadius, whatIsGround);
if (isGrounded == true && Input.GetKeyDown(KeyCode.Space))
isJumpimg = true;
jumpTimeCounter = jumpTime;
rb.velocity = Vector2.up * jumpForce;
{
}
if (Input.GetKey(KeyCode.Space) && isJumpimg == true)
if (jumpTimeCounter > 0)
{
rb.velocity = Vector2.up * jumpForce;
jumpTimeCounter -= Time.deltaTime;
} else
isJumpimg = false;
{
{
}
}
{
if (Input.GetKeyUp(KeyCode.Space))
{
isJumpimg = false;
}
}
}
}
如果这个代码是从你的项目中复制和粘贴的,我可以看到你的问题。如果不是,这可能只是一个意外的格式化问题,当把它放在SO上。
让我们逐行浏览这一节。
if (isGrounded == true && Input.GetKeyDown(KeyCode.Space))
isJumpimg = true;
jumpTimeCounter = jumpTime;
rb.velocity = Vector2.up * jumpForce;
{
}
{}
大括号的作用域,而是采用一个缩进。当您使用 if 语句执行此操作时,您表示只有一行与 if 语句相关。第一行之后的任何事情都被视为总是会发生。跳转时间计数器
变量,如果它位于 if 语句中,则该变量通常没问题。 矢量 2.up * 跳跃力
。这发生在每一帧,因为它不在if语句中,所以你一加载就飞走了。{}
打开和关闭作用域,但其中没有任何内容,并且该作用域未附加到循环或 if 语句。解决方案:将上述部分更改为此部分。
if (isGrounded == true && Input.GetKeyDown(KeyCode.Space))
{
isJumpimg = true;
jumpTimeCounter = jumpTime;
rb.velocity = Vector2.up * jumpForce;
}
在将逻辑放入由if语句或循环控制的范围内时,要更加小心,因为只有在特定条件下才会发生逻辑。别担心,这是学习者常见的错误。但是现在你可能更清楚所有的语法,像< code>{}、< code>()和< code >;可以帮助您告诉编译器您希望代码做什么。
工具的统一,是为了方便工作流的统一,还有工具使用经验的传承。 团队里的成员,经常需要互相使用对方电脑来讨论问题、查看某段代码、Debug 某个功能,工具统一起来后,你会发现,虽然是别人的电脑,工具使用起来是熟悉的,用起来就跟自己的电脑一样顺手,自然的工作效率就会提高。 硬件:RMBP 15 寸 系统:Mac 版本 10.10 以上 编辑器:Atom or Sublime 编辑器代码格式化:Edit
Linux系统服务管理 从CentOS7开始,CentOS的服务管理工具由SysV改为了systemd,但即使是在CentOS7里,也依然可以使用chkconfig这个原本出现在SysV里的命令。 Systemd的设计目标是,为系统的启动和管理提供一套完整的解决方案。 chkconfig服务管理工具 罗列chkconfig所管理的服务 使用chkconfig --list命令可以列出所有的服务及其
我们正在与Unity3d合作开发一个GPS应用程序。< br >在装有Marshmallow 6.0的Android设备上,我们安装它时,它不会要求任何权限。我们已经知道Marshmallow只在运行时请求它们(https://developer . Android . com/training/permissions/requiring . html),但是我们不知道如何修改AndroidMan
问题内容: 我正在为我的PHP / MySQL网站创建一个投票系统,我想确保一个用户只能投票一次。什么是这样做的好方法?到目前为止,我已经想到并半实现了以下内容: 使用IP和表决将单个表决存储在数据库中。这样会造成体积大,但可确保每个用户获得一票。 在用户端存储cookie,以检查他们是否投票。这是最简单的方法,但显然用户只能禁用cookie。 什么是最实用的方法?任何其他建议都值得欢迎。 问题答
PX4系统是模块化的架构,这使得它对所有的机器人类型都可以使用同一个代码库。 {% mermaid %} graph LR; Autopilot—>Controller; SafetyPilot—>Controller; Controller—>Mixer; Mixer—>Actuator {% endmermaid %} 基本设备 在机型部分所用到的硬件包括以下基本设备: 1个Taranis P
所以我做了我的游戏,并试图“建立它”。我犯了几个对我来说毫无意义的错误。 以下是错误: UnityEditor. BuildPlayerWindow BuildmetodExctive: 2错误在UnityEditor. BuildPlayerWindow DefaultBuildPlayer. BuildPlayer(Unity编辑器. BuildPlayerOptions选项)[0x00234