C# Unity3d flappy bird教程-空格按钮不起作用
我是Unity3d的初学者。我有一些android编程的背景,但没有任何C#经验。根据本教程,我尝试做的第一件事是创建一个flappy bird游戏的克隆,称为flappy plane 问题是,当我试图编写一个脚本,允许玩家用代码移动(player.cs)时C# Unity3d flappy bird教程-空格按钮不起作用,c#,unity3d,flappy-bird-clone,C#,Unity3d,Flappy Bird Clone,我是Unity3d的初学者。我有一些android编程的背景,但没有任何C#经验。根据本教程,我尝试做的第一件事是创建一个flappy bird游戏的克隆,称为flappy plane 问题是,当我试图编写一个脚本,允许玩家用代码移动(player.cs)时 using UnityEngine; using System.Collections; public class player: MonoBehaviour { public Vector2 jumpForce = new
using UnityEngine;
using System.Collections;
public class player: MonoBehaviour {
public Vector2 jumpForce = new Vector2(0,300);
public Vector2 jumpForce2 = new Vector2(0,-300);
// Use this for initialization
// Update is called once per frame
void Update () {
if (Input.GetKeyUp("space")){
Rigidbody2D.velocity = Vector2.zero;
Rigidbody2D.AddForce(jumpForce);
}
}
}
我得到一个错误“访问非静态成员'UnityEngine.Rigidbody2D.velocity'需要对象引用”。我已经在谷歌上搜索过了,建议使用GetComponent()访问Rigidbody2d。velocity
所以我改变了
Rigidbody2D.velocity = Vector2.zero;
Rigidbody2D.AddForce(jumpForce);
与
GetComponent().velocity=Vector2.0;
GetComponent().AddForce(jumpForce);
错误消失了,我可以将脚本添加到对象中,但我仍然没有得到所需的操作-在我点击“播放”后,对象变为不可见,只是倒下,对空格键没有反应。我做错了什么?
谢谢你的回答 可能是您没有添加足够的力使对象向上移动 从技术上讲,你的代码没有问题。(尽管你的问题中确实有些东西混在一起)。问题在于你没有在每一帧上增加任何力 基本上,在这一刻,当你按下播放按钮时,你的播放器对象处于自由落体状态,你只在按下空格键的画面上给播放器添加了一个很小的力 要解决这个问题,以下是你应该做的
velocity.y
设置为0(这确实是一种很有技巧的方法,但它已经足够了,不需要任何代码)B给玩家增加一个向上的力,使重力的效果无效。只需使用F=mg来获得需要添加的力的值
iskinetic
属性默认设置为true,按空格键将其设置为false,并在几帧(5-6帧)后返回true确保您的玩家对象和地面都有BoxCollizedR2D碰撞器保持在地面之上 您可以为刚体保存一个引用,如
Rigidbody2D代码>
然后在start putmyRigidbody=GetComponent()代码>然后您将使用likemyRigidbody.AddForce(jumpForce)代码>你的跳跃力2虽然是向下射击你的球员,但你不应该在跳跃中需要它,因为物理和重力将适用于刚体
如果您的输入未在项目设置中设置,请尝试使用
Input.GetKeyDown(KeyCode.Space);
哇,这里有一个flappy bird克隆标签!
Input.GetKeyDown(KeyCode.Space);