0
大家好!我是Unity新手,嘗試創建一個2D街機遊戲,讓我的角色跳起來以一種軌跡運動的方式觸及一些東西然後掉下來。我用重力刻度等於1和move_speed 1000和rest_speed 500但是一旦我命中空間,角色就會掉下來而不是上升。對象不斷下降而不是射擊軌跡(團結)
此外,walk.IsWalk是Walking類中的一個int(只要我點擊右箭頭,將IsWalk設置爲2)。我的預期結果是,只要我們同時持有空間和右箭頭鍵,角色應該沿着彎曲的運動向上移動。我不知道這裏發生了什麼,任何人都可以指點我一個方向?謝謝!
我的代碼如下:
using UnityEngine;
using System.Collections;
public class Jumping : MonoBehaviour
{
Rigidbody2D rb2D;
Animator anim;
Walking walk = new Walking();
public float move_speed;
public float rest_speed;
void Start()
{
rb2D = GetComponent<Rigidbody2D>();
anim = GetComponent<Animator>();
}
void FixedUpdate()
{
//float xmove = Input.GetAxis("Horizontal");
//float ymove = Input.GetAxis("Vertical");
//var curr = new Vector2(xmove, ymove);
if (Input.GetKey("space"))
{
anim.SetTrigger("JumpButtonPres");
rb2D.gravityScale = 1;
if (walk.isWalk == 2)
{
rb2D.AddForce(rb2D.position * move_speed);
}
else if (walk.isWalk == 1)
{
//rb2D.velocity += (Vector2.up * (-rb2D.velocity.x));
rb2D.AddForce(-rb2D.position * move_speed);
}
else
{
rb2D.AddForce(rb2D.position * rest_speed);
}
}
}
}
爲rigidbody2D.AddForce
「walk.IsWalk距離步行類一個bool」。這不是真的。你不能比較bool和int。如果該語句爲真,則不應編譯您的代碼。順便說一句,編輯你的問題,並把你的實際代碼,而不是你的代碼的圖片。 – Programmer
對不起,我說錯了,我設置walk.IsWalk爲Int,並將其與int – CodeLover