美文网首页unity3D技术分享
Rigidbody2D使用与优化

Rigidbody2D使用与优化

作者: 小黑Unity_齐xc | 来源:发表于2018-09-04 14:42 被阅读3次

1.移动


当gameobject被加上rigidbody2d组件时,如果想移动它,不要这样写:

void Update(){
        this.transform.Translate (Vector3.left * speed * Time.deltaTime);
}

这种写法,主要针对无rigidbody2d的gameobject对象,否则,性能很差。
正确的写法:

void FixedUpdate()
    {
        rigidbody2D.MovePosition (rigidbody2D.position 
                  + Vector2.left * speed * Time.fixedDeltaTime);
    }
void Start () {
        rigidbody2D.velocity = Vector2.left * speed;
    }

2.Body Type属性


rigidbody2d最为重要的一个属性,不同的选项,不同的物理效果:
2.1 Dynamic(动态的)

具有完全的物理特性;
会与所有类型的Rigidbody2D进行碰撞;
是最常用的Rigidbody2D类型、也是默认的类型;
是最耗费性能的类型;

2.2 Kinematic(运动学)

仅在用户控制下运动,不会受到重力和AddForce等力相关函数的影响;
只与Dynamic的Rigidbody2D发生碰撞(不勾选Use Full Kinematic Contacts);
不能通过力或碰撞改变速度,但是可以设置其速度和位置、旋转;
比Dynamic性能高;

2.3 Static (静态的)

具有无限质量、不可移动的物体;
velocity、AddForce、gravity、MovePosition、MoveRotation都不可用;
只与Dynamic的Rigidbody2D发生碰撞;
性能最高;

3. Simulated 物理模拟


设置为true(勾选)时开启模拟;设置为false(不勾选)时关闭模拟。
模拟包括:

运动;
Collider2D的碰撞;
Joint2D的约束效果;
是否驻留在内存;

直接更改此属性,比直接启用/禁用Collider2D组件或Joint2D组件更有高效;

4. Use Full Kinematic Contacts

Kinematic 模式下的属性。

勾选后,在碰撞上类似于Dynamic Rigidbody2D,但是仍然不会受到力的影响;
不勾选,只会与Dynamic Rigidbody2D发生碰撞;

5. 其他注意事项:

1.运行中,不要修改Rigidbody2D的Body Type属性,性能会变差。
2.如果一个Rigidbody2D需要移动,并且接受完全的物理模拟,包括重力、碰撞、施加力等,
   那么需要将Rigidbody2D设置成Dynamic,并附加Collider2D组件。
3.如果一个Rigidbody2D需要移动,但不接受力的作用,那么需要将它设置成Kinematic;
4.如果一个Rigidbody2D不需要移动,也不需要接收力的作用,但是需要接受碰撞,
   那么需要将Rigidbody2D设置为Static,并附加Collider2D组件。

相关文章

  • Rigidbody2D使用与优化

    1.移动 当gameobject被加上rigidbody2d组件时,如果想移动它,不要这样写: 这种写法,主要针对...

  • 2016/12/21前端性能优化

    体验与性能优化 1. 体验优化 使用lazyload实现懒加载,优化体验与性能。 使用连续的jpg与交错的png。...

  • Apk体积优化

    1、svg的使用与优化2、Tint着色器的使用与优化3、资源打包配置优化4、动态库的打包配置优化5、移除无用的资源...

  • 「Unity3D」(8)Rigidbody2D卡顿问题和重心旋转

    本文主要讨论,在Unity中使用物理引擎Physics2D的三个方面的内容: 如何让Rigidbody2D物理模拟...

  • Unity与Android交互方案

    Unity与Android交互方案优化版Unity与Android交互方案优化版续:使用自定义Activity【U...

  • Android 性能优化

    一. 内存优化 Android 垃圾回收与内存优化 不要过度使用枚举,枚举占用的内存空间要比整型大。 适度使用静态...

  • iOS UIWebView 与WKWebView集锦

    使用WKWebView进行性能调优 WebView性能、体验分析与优化 UIWebView、WKWebView使用...

  • unity学习记录

    1. 修改Rigidbody2D 的velocity (速度) float move = Input.GetAxi...

  • OC基础 Runtime-isa (2)

    Runtime-isa 设值 isa之设值:与运算 | Main.m 优化:位域再次优化 使用结构体 再次优化 u...

  • Unity-2D物理引擎、铰链、效应器

    RigidBody2D Body TypeDynamic/动态:用于主动碰撞型,运动型的刚体Kinematic/运...

网友评论

    本文标题:Rigidbody2D使用与优化

    本文链接:https://www.haomeiwen.com/subject/lemgwftx.html