P2 2D物理系统:刚体

主要有三个方面:

        1.物理系统

        2.2D刚体

        3.物理材质


目录

主要有三个方面:

        1.物理系统

        2.2D刚体

        3.物理材质


1.物理系统

        Unity的物理系统主要是对现实中的物理现象模拟,如重力等

        目前我们学习的是2D物理系统,在以后的文章中,还会学习3D的物理系统

        物理系统常用组件主要由刚体和碰撞体组成

2.2D刚体

首先点击:

点击之后呢,会出现这个提示框:

 

物理是用于3D游戏的,物理2D是用于2D游戏的。

里面的属性-重量有两个属性:X和Y;X正值是往右移动,X为负值时,往左移动;Y值为正时,往上移动,Y值为负时,往下移动。

对了,还要很重要的一点是,物体要加上这样一个组件,才能生效:

 Rigidbody 2D //刚体2D才能生效

但是这样西瓜会一直下落:

有什么办法阻止呢?加个地面呗。真聪明,我们来加个地面:

咦?为什么没效果呢?

这是因为西瓜的圆形是渲染器渲染出来的,上一篇文章讲过。刚体可不管你渲染出来的图片是什么样子 ,对于刚体来说,这个物体,或者说是图片,根本没有边缘,所以会无限下落。

那有什么办法不让他继续下落呢?悄悄告诉你,加上碰撞体就行了,但是碰撞体下节课才会讲,这里只需要有这个概念就行了。

 西瓜加上圆形碰撞体:

地面加上方形碰撞体:

一个游戏物体如果希望有重力,那么他一定需要有Rigibody(刚体)组件;

里面有很多属性:

       1. BodyType:

                        ·Dynamic:动态,最仿真的

                        ·Kinematic:运动,由代码控制(被Dynamic刚体碰,不会移动,但是它碰Dynamic,Dynamic会被移动)

                        ·Static:静态,不是为了运动而设计的(不会被其他两个刚体被移动)

       2.Simulated:是否模拟,不模拟的话,就不会有重力,碰撞等。(相当于是一个启用器)

       3.Mass:质量

       4.Linear Drag:位置移动的阻力系数

       5.Angular Drag:旋转阻力

       6.Gravity Scale:重力程度

       7.Collision Detection:定义如何检测2D碰撞体之间的碰撞

       8.Constraints:定义对2D刚体运动的任何限制 

3.物理材质

        创建一个物理材质:

        

 1.项目里面右键,2.创建,3.物理材质2D

物理材质是一种资源,有两个属性:

        Friction:摩擦力

       Bounciness:弹性

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class L3_3Demo : MonoBehaviour
{
    private Rigidbody2D r2d;
    void Start()
    {
        r2d = GetComponent<Rigidbody2D>();
        r2d.mass = 2;
        r2d.gravityScale = 0.5f; //面板中有的,这里都有

        r2d.MovePosition(new Vector2(0, 5));//移动到(0,5)的坐标上
    }

    // Update is called once per frame
    void Update()
    {
        r2d.MovePosition(transform.position + new Vector3(0, 1, 0));
        //一直向上移动(最后Z轴坐标写成0就行)

        //改变力
        r2d.velocity = new Vector2(0, 1);//也能实现一直向上移动

        //施加力:
        r2d.AddForce(Vector2.up * 1); //也能实现一直向上移动
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值