您的位置:首页 > 移动开发 > Unity3D

Unity2d人物移动(2D物理组件RigidBody理解)

2020-01-12 12:57 1656 查看

给一个2d人物加上刚体组件,就有了自己的物理属性,再加上碰撞体,默认状态下他就是一个纯粹的生命,碰到别的碰撞体就会产生真实的物理碰撞效果
如果是和别的物体做碰撞体做碰撞判断但是不要产生碰撞效果,就设置其他物体是触发器,希望未来可以更好理解

刚体做人物移动

人物代码声明刚体,start的时候绑定到刚体,通过代码改变人物的刚体的速度属性,目前感觉最舒服的行动方法,加上跳跃后刚体的优势就体现出来了。

public  float xVelocity;
xVelocity = Input.GetAxis("Horizontal");
rig.velocity = new Vector2(xVelocity*speed, rig.velocity.y);

Input.GetAxis(“Horizontal”)的意思

查字典理解会返回实轴上的值,通过形式参数的不同返回不同。
编辑->项目设置上的图

意义


也就是说ad或者方向键左右输入就会返回正负值
rig.velocity = new Vector2(xVelocity*speed, rig.velocity.y)
我们改变x方向速度为键盘输入返回的值乘速度,就可以移动
如果人物要移动方向

if (xVelocity < 0)
transform.localScale = new Vector3(-1f, 1f,1);
if (xVelocity > 0)
transform.localScale = new Vector3(1f, 1f,1);

速度大于0,通过代码改变缩放

复习笔记



方法(用的时候进file:///C:/Program%20Files/Unity/Hub/Editor/2018.4.8c3/Editor/Data/Documentation/en/ScriptReference/Rigidbody2D.html
加力 向刚体施加力。
AddForceAtPosition 在空间中的给定位置施加力。
AddRelativeForce 相对于其坐标系向刚体2D添加力。
添加扭矩 在刚体的质心上施加扭矩。
投 从每个碰撞器位置开始,将附加到Rigidbody2D的所有Collider2D形状投射到场景中,而忽略附加到相同Rigidbody2D的碰撞器。
距离 计算此碰撞器相对于附加到此Rigidbody2D的所有Collider2D的最小距离。
GetAttachedColliders 返回附加到该Rigidbody2D的所有Collider2D。
获取联系人 检索与该刚体相连的所有对撞机的所有接触点。
GetPoint 给定刚性主体全局空间中的点,获取局部空间点。
GetPointVelocity 刚体在全局空间中Point的速度。
GetRelativePoint 给定刚性主体局部空间中的点relativePoint,获取全局空间点。
GetRelativePointVelocity 刚体在局部空间中Point的速度。
GetRelativeVector 给定刚性主体局部空间中的向量relativeVector,获取全局空间向量。
获取向量 给定苯乙烯整体空间中的向量,获取局部空间向量。
醒来 刚体是“清醒的”吗?
在睡觉 刚体是“睡觉的”吗?
IsTouching 检查对撞机是否接触到附着在该刚体上的任何对撞机。
IsTouchingLayers 检查连接到此刚体的任何碰撞器是否接触指定layerMask上的任何碰撞器。
移动位置 将刚体移动到位置。
移动旋转 将刚体旋转到角度(以度为单位)。
OverlapCollider 获取与附加到此Rigidbody2D的所有对撞机重叠的所有对撞机的列表。
重叠点 检查是否有任何Rigidbody2D对撞机与空间中的一个点重叠。
睡觉 使刚体“睡眠”。
醒来 禁用刚体的“睡眠”状态。

广播消息 在此游戏对象或其任何子级中的每个MonoBehaviour上调用名为methodName的方法。
比较标签 这个游戏对象是否带有标签?
获取组件 如果游戏对象附加了一个,则返回Type类型的组件;如果没有,则返回null。
GetComponentInChildren 使用深度优先搜索返回GameObject或其任何子级中Type类型的组件。
GetComponentInParent 返回GameObject或其任何父代中Type类型的组件。
GetComponents 返回GameObject中Type类型的所有组件。
GetComponentsInChildren 返回GameObject或其任何子级中Type类型的所有组件。
GetComponentsInParent 返回GameObject或其任何父代中Type类型的所有组件。
发信息 在此游戏对象中的每个MonoBehaviour上调用名为methodName的方法。
SendMessageUpwards 在此游戏对象中的每个MonoBehaviour以及该行为的每个祖先上调用名为methodName的方法。
GetInstanceID 返回对象的实例ID。
ToString 返回GameObject的名称。
静态方法
破坏 移除游戏对象,组件或资产。
立即销毁 立即销毁对象obj。强烈建议您改用销毁。
DontDestroyOnLoad 加载新场景时,请勿破坏目标对象。
FindObjectOfType 返回第一个Type类型的活动加载对象。
FindObjectsOfType 返回所有类型为Type的活动加载对象的列表。
实例化 克隆对象原始对象并返回克隆。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
珞珈大胖强TURBO 发布了44 篇原创文章 · 获赞 21 · 访问量 4391 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: