C# 有人能帮我理解我在unity中的2d动作脚本吗?
我现在为我的2d平台设计了这个。 我讨厌它说的大多是代码。C# 有人能帮我理解我在unity中的2d动作脚本吗?,c#,unity3d,C#,Unity3d,我现在为我的2d平台设计了这个。 我讨厌它说的大多是代码。 我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码代码。对象上的刚体组件跟踪对象的“速度”,即每个轴上的“速度”。 速度是矢量3,每个轴的x值、y值和z值(矢量2只是不修改z) AddForce是通过“添加”相应的x、y、z值来
我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码。我讨厌它说大部分代码代码。对象上的刚体组件跟踪对象的“速度”,即每个轴上的“速度”。 速度是矢量3,每个轴的x值、y值和z值(矢量2只是不修改z)
AddForce是通过“添加”相应的x、y、z值来增加速度的这三个属性中的每一个。time.deltaTime是用来随时间分配附加力的jsut。试试这个。当你像AddForce(值)一样放置时,rigidbody2D有3个维度;它也在X、Z、Y上实现,所以不要尝试只给Addforce函数的第一个参数X赋值。希望这会有所帮助。也很抱歉我的英语不好:)
void FixedUpdate()
{
//移动
if(Input.GetKey(“d”))
{
transform.rotation=四元数。LookRotation(旋转);
rb.AddForce(向前移动*时间增量,0f,0f);
}
if(Input.GetKey(“a”))
{
transform.rotation=四元数.LookRotation(-turn);
rb.AddForce(-moveforward*Time.deltaTime,0f,0f);
}
}
您到底有什么问题?你有什么特别的困难吗?我使用的是免费像素空间平台包,当我离开边缘时,我会慢慢倾斜然后摔倒。新代码的任何替代方案。我正在使用免费像素空间平台包,当我离开边缘时,我会慢慢倾斜然后摔倒。此代码的任何替代方案。
using UnityEngine;
public class PlayerMove : MonoBehaviour
{
public Rigidbody2D rb;
public Transform spawn;
public Vector2 moveforward;
public Vector2 jumpheight;
public Vector3 turn;
void OnCollisionStay2D(Collision2D collision)
{
if (collision.collider.tag == "Floor")
{
//Move
if (Input.GetKeyDown("w"))
{
rb.AddForce(jumpheight * Time.deltaTime);
}
if (Input.GetKeyDown("space"))
{
rb.AddForce(jumpheight * Time.deltaTime);
}
}
//Death
if (collision.collider.tag == "Death")
{
transform.position = spawn.position;
}
}
// Update is called once per frame
void FixedUpdate()
{
//Move
if (Input.GetKey("d"))
{
transform.rotation = Quaternion.LookRotation(turn);
rb.AddForce(moveforward * Time.deltaTime);
}
if (Input.GetKey("a"))
{
transform.rotation = Quaternion.LookRotation(-turn);
rb.AddForce(-moveforward * Time.deltaTime);
}
}
}