c# - 按下按钮时跳转(unity 2D)
问题描述
我正在制作我的第一个手机游戏,但我不知道如何在按下玩家跳跃的按钮时制作一个按钮。这是我的代码:
using UnityEngine;
using System.Collections;
using UnityStandardAssets.CrossPlatformInput;
public class Move2D : MonoBehaviour
{
public float speed = 5f;
public float jumpSpeed = 8f;
private float movement = 0f;
private Rigidbody2D rigidBody;
// Use this for initialization
void Start()
{
rigidBody = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
movement = CrossPlatformInputManager.GetAxis("Horizontal");
rigidBody.velocity = new Vector2(movement * speed, rigidBody.velocity.y);
if (CrossPlatformInputManager.GetButtonDown("Jump") && rigidBody.velocity.y == 0)
{
rigidBody.AddForce(transform.up * jumpSpeed, ForceMode2D.Impulse);
}
}
}
解决方案
这很简单,这应该是最简单的方法。
1) 在 Canvas UI 中创建一个按钮
2) 在“Move2D”类中创建一个公共“Jump()”函数
3) 在 Canvas UI 中的按钮事件上分配此公共“Jump()”函数
public class Move2D : MonoBehaviour
{
public void Jump()
{
rigidBody.AddForce(transform.up * jumpSpeed, ForceMode2D.Impulse);
}
}
推荐阅读
- javascript - localhost 中的 Socket io、mssql、node、expressjs 无法将数据附加到客户端
- python - 与 numpy.logspace() 函数相比,如何用 C++ 编写快速代码?
- angular - 在 [filename.ts] 内的警报弹出窗口中添加下拉选择
- html - 如何定位这样的文本和图像?
- firebase - 其中,Flutter 上的 Firestore 查询没有“notEqualTo”条件
- python - 如何使文件充当python模块
- python - Discord PY - 我需要命令来定义机器人将发送 NSFW 的频道 ID
- java - 当我运行 `./gradlew wrapper` 时,Minecraft Forge 帽子会导致此错误?
- python - 在 Python 中读取 npm start 控制台输出
- mysql - MySQL:插入日志中的列为空