Unity入门——刚体

增加刚体

可在检查器中添加组件有关2dcolider的组件,就是刚体组件,可以通过改变刚体大小来适应图像移动。

这是一个精灵作为刚体前后移动的函数,后面有对函数的解析。

public class RubyController : MonoBehaviour//是控制一个名为Ruby的主角
{
    Rigidbody2D rigidbody2d;
    float horizontal; 
    float vertical;
    
    // 在第一次帧更新之前调用 Start
    void Start()
    {
        rigidbody2d = GetComponent<Rigidbody2D>();
    }

    // 每帧调用一次 Update
    void Update()
    {
        horizontal = Input.GetAxis("Horizontal");
        vertical = Input.GetAxis("Vertical");
    }

    void FixedUpdate()
    {
        Vector2 position = rigidbody2d.position;
        position.x = position.x + 3.0f * horizontal * Time.deltaTime;
        position.y = position.y + 3.0f * vertical * Time.deltaTime;

        rigidbody2d.MovePosition(position);
    }
}

Rigidbody2D rigidbody2d;
是用来访问游戏中所有的刚体变量,并把此变量存储在rigidbody2d中,可通过该变量名来访问刚体所在的位置。

float horizontal;
float vertical;
定义两个浮点数变量,分别是水平坐标和垂值坐标,在2d图像中分别代表这x轴y轴。后续可通过改变这两个变量来改变主角的空间位置。

void start()
大括号里的函数表示游戏开始第一帧的时候调用一次该函数,后面就不会进入该函数。
rigidbody2d = GetComponent();获取当前所有的刚体。
void Update()
{
horizontal = Input.GetAxis(“Horizontal”);
vertical = Input.GetAxis(“Vertical”);
}

void Update()代表计算机循环执行这个函数,
input.getaxis()是通过键盘来获取数据,在设置里分别将horizontal和vertical代表了键盘上的上下左右键,而点击上下左右分别代表+1或-1坐标,而不碰键盘代表0

void FixedUpdate()
{
Vector2 position = rigidbody2d.position;
position.x = position.x + 3.0f * horizontal * Time.deltaTime;
position.y = position.y + 3.0f * vertical * Time.deltaTime;

    rigidbody2d.MovePosition(position);
}

其中==void fixedupdate()==只要你想直接影响物理组件或对象(例如刚体),就需要使用该函数。Vector2 position = rigidbody2d.position;
rigidbody2d.MovePosition(position);
同样,你现在使用刚体位置,而不是使用 transform.position = position; 来设置新位置。这行代码会将刚体移动到你想要的位置,但是如果刚体在移动中与另一个碰撞体碰撞,则会中途停止刚体。

刚体碰撞

OnCollisionEnter2D(这是刚体与某个对象碰撞时调用的函数)。在此示例中,你的敌人与世界或主角发生碰撞时,便会调用 OnCollisionEnter2D。就像你对伤害区域所做的那样,你也可以进行测试以查看敌人是否与你的主角发生了碰撞。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值