我试着查找了所有类似的问题,但似乎找不到问题所在,我正在用一个模板和视频中的说明进行学习,但一切都很完美,.cs文件没有显示任何错误或问题,我可以完美地运行一切,除了
if (Physics2D.Raycast(transform.position, Vector3.down, 0.1f))
{
Grounded = true;
}
else Grounded = false;
因为一旦我按下键W;跳跃";如果我一直按这个键;浮动";像一只扑腾的小鸟,我还放了调试。Drawray为了显示这个光线投射,但它没有在编辑器中显示,我尝试将值从0.1f更改为100f,但没有显示,我是新手,所以可能是一些标点符号,或者我在键入代码时出错了。
这是整个代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class JhonMovement : MonoBehaviour
{
public float JumpForce;
public float Speed;
private Rigidbody2D Rigidbody2D;
private float Horizontal;
private bool Grounded;
void Start()
{
Rigidbody2D = GetComponent<Rigidbody2D>();
}
void Update()
{
Horizontal = Input.GetAxisRaw("Horizontal");
Debug.DrawRay(transform.position, Vector3.down * 0.1f, Color.red);
if (Physics2D.Raycast(transform.position, Vector3.down, 0.1f))
{
Grounded = true;
}
else Grounded = false;
if (Input.GetKeyDown(KeyCode.W) && Grounded)
{
Jump();
}
}
private void FixedUpdate()
{
Rigidbody2D.velocity = new Vector2(Horizontal * Speed, Rigidbody2D.velocity.y);
}
private void Jump()
{
Rigidbody2D.AddForce(Vector2.up * JumpForce);
}
如果我把";如果";选项角色也这样做,不知道我在哪里犯了错误,我四处查看了一下,似乎还可以。
我将感谢你的帮助。
- 单击
Gizmos
确保它处于打开状态,如果您看到相机图标,则其处于打开状态 - 或者光线长度太小而看不见
- 下至
#Scene
您可以看到Shaded
单击并更改为Wireframe
private void OnDrawGizmos()//used to see Ray in editor without update function
{
//your Ray code here
//before i click play i like to hide this method
Debug.DrawRay(transform.position, Vector2.down * 1f, Color.white); // try this
}