Unity日记18(刚体、获取碰撞物的信息、铰链、弹簧)

这篇具有很好参考价值的文章主要介绍了Unity日记18(刚体、获取碰撞物的信息、铰链、弹簧)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

刚体

刚体

重力

isKinematic

碰撞检测

变换限制

​编辑

碰撞

 获取到碰撞物的实体,输出它的某个信息。

 碰撞和触发器的区别

铰链

锚点和轴

弹簧组件

固定关节组件

定制摩擦力面


刚体

刚体

添加了好像不能禁用。

Unity日记18(刚体、获取碰撞物的信息、铰链、弹簧)

重力

重力,顾名思义。

禁用重力,不受重力影响。当有物体撞击,猜测会向撞击方向飞去。

isKinematic

        如果启用了 isKinematic,则力、碰撞或关节将不再影响刚体。 刚体将由动画或脚本通过更改 transform.position 进行完全控制。 运动刚体也会通过碰撞或关节影响其他刚体的运动。 例如,可以将运动刚体连接到一个具有关节的普通刚体上, 则该普通刚体将受到运动刚体运动的约束。 对于制作通常由动画驱动,但在特定情况下,可以通过将 isKinematic 设置为 false 来快速转变为布娃娃的角色, 运动刚体也极其有用。

测试:一个带刚体组件(禁用动力学)的物体去撞击另一个带刚体组件(开启动力学)的物体。

结果:“不开”的撞不动“开的”。

再测试:相反用“开的”去撞“不开的”,能撞动。 

Unity日记18(刚体、获取碰撞物的信息、铰链、弹簧)

 

碰撞检测

离散

持续:推荐“地面”等使用

连续动态:推荐“子弹”等使用

变换限制

Unity日记18(刚体、获取碰撞物的信息、铰链、弹簧)

锁xyz的位置、锁xyz轴的旋转。

碰撞

要两个物体都有碰撞组件才能发生碰撞;

实例:火星受重力下落,然后碰撞地面发生爆炸

火星有重力、碰撞组件;

地面有碰撞组件

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

public class Boom_script : MonoBehaviour
{
    public GameObject prefab;//后续操作预设体
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    //监听发生碰撞
    private void OnCollisionEnter(Collision collision)
    {
        Instantiate(prefab, transform.position, Quaternion.identity);
        Destroy(gameObject);
    }
    //持续碰撞
    private void OnCollisionStay(Collision collision)
    {
        
    }
    //结束碰撞
    private void OnCollisionExit(Collision collision)
    {
        
    }
}

生成和销毁语句

        Instantiate(Gameobject,位置,四元数旋转);
        Destroy(GameObject);

 

 获取到碰撞物的实体,输出它的某个信息。

    private void OnCollisionEnter(Collision collision)
    {
        Instantiate(prefab, transform.position, Quaternion.identity);
        Destroy(gameObject);
        Debug.Log(collision.gameObject.name);
        string name= collision.gameObject.name;
        GetObj = GameObject.Find(name);
        Debug.Log(GetObj.layer);
    }

第一个参数是碰到的物体的名字

第二个参数是碰到的物体的层名字(数字是层序号)

Unity日记18(刚体、获取碰撞物的信息、铰链、弹簧)


 

 碰撞和触发器的区别

1.物理特性。触发器是检测区域、结界、视野,不受物理特性影响。碰撞能返回碰撞的位置,受物理特性影响。

2.物理材质。有些物理材质在碰撞上会异常,但触发器不会出现异常(因为位置)。

3.函数名和返回参数不同。

4.实例。士兵拿剑去砍击,要剑碰到敌人才有伤害,属于碰撞。


铰链

铰链必须带刚体。

锚点和轴

调整旋转的位置和旋转轴 

旋转位置(achor),长宽高都是1。起始点是(0,0,0)。

旋转轴(axis),看是绕着哪个轴旋转。(0,1,0)绕着Y轴。

Unity日记18(刚体、获取碰撞物的信息、铰链、弹簧)

旋转速度

Unity日记18(刚体、获取碰撞物的信息、铰链、弹簧)


弹簧组件

示例:上面方块固定,下面方块通过弹簧连接上面方块。开始后方块因重力掉下,之后一弹一弹,最后静止。

上方块:添加刚体(启用动力学);添加弹簧组件(spring joint),连接体添加为下方块。

下方块:添加刚体(启用重力)。

Unity日记18(刚体、获取碰撞物的信息、铰链、弹簧)

 Unity日记18(刚体、获取碰撞物的信息、铰链、弹簧)


固定关节组件

在负责拉人的对象上用,将拉的人添加到连接体上。

Unity日记18(刚体、获取碰撞物的信息、铰链、弹簧)


定制摩擦力面

 Unity日记18(刚体、获取碰撞物的信息、铰链、弹簧)

动态摩擦力

静态摩擦力

弹力 

 Unity日记18(刚体、获取碰撞物的信息、铰链、弹簧)

        摩擦力是防止表面相互滑落的量。尝试堆叠对象时,此值很重要。摩擦力有两种形式:动态和静态。对象静止时使用__静态摩擦力。静态摩擦力会阻止对象开始移动。如果向对象施加足够大的力,对象将开始移动。随后,__动态摩擦力__将发挥作用。动态摩擦力__现在将尝试在与另一个对象接触时减慢对象的速度。

在碰撞组件中应用

Unity日记18(刚体、获取碰撞物的信息、铰链、弹簧)文章来源地址https://www.toymoban.com/news/detail-470911.html

到了这里,关于Unity日记18(刚体、获取碰撞物的信息、铰链、弹簧)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity设置了刚体和碰撞体却仍旧会穿墙的原因

            自己在做2D游戏练习的时候,发现给僵尸设置了碰撞体和刚体,它却仍然可以穿墙来追我的主角,简直太可怕了,然后我就开始网上找各种可能情况。          首先看了一眼Edit--projectSetting--Physics中有没有勾选他俩的碰撞。          发现不是这个的原因,就又

    2024年02月11日
    浏览(39)
  • Unity常用方法--Physics2D.OverlapCircleAll(获取一个圆形区域内所有碰撞器的列表)

    使用方式请直接看参考文献 使用案例 可以通过该方法判断在攻击范围内是否存在敌人,并在存在时,调用敌人组件的内部函数 代码 参考文献   https://docs.unity3d.com/cn/current/ScriptReference/Physics2D.OverlapCircleAll.html

    2024年04月10日
    浏览(26)
  • Unity之铰链关节和弹簧组件

     《今天闪电侠他回来了,这一次他要拿回属于他的一切》 目录 📕一、铰链关节组件HingeJoint 1. 实例 2.  铰链关节的坐标属性 ​3.铰链关节的马达属性Motor 📕二、弹簧组件 📕三、杂谈 1. 实例 说到关节大家会想到我们身体的关节,还有日常生活中的“关节”比如说:门,这

    2024年01月19日
    浏览(72)
  • unity中的Hinge Joint铰链关节

    铰链关节(Hinge Joint)是一种允许两个物体绕着一个固定轴旋转的关节。它通常用于模拟门、大门、手肘等自然物体的旋转运动。在物理引擎中,铰链关节是一种常见的约束类型,可以通过设置旋转限制来控制物体的旋转范围,从而实现更加真实的物理模拟效果。 铰链关节由

    2024年02月05日
    浏览(31)
  • Unity——使用铰链关节制作悬挂物体效果

    目的 在场景中创建一个悬挂的物体,是把多个模型悬挂在一起可以自由摇摆,类似链条的效果 效果图 前言 什么是铰链关节? 铰链关节 将两个刚体(Rigid body)组会在一起,从而将其约束为如同通过铰链连接一样进行移动。它十分适合门、链条、钟摆等模拟效果。 步骤 打开

    2023年04月24日
    浏览(70)
  • 通过Unity的铰链(HingeJoint)来制作弹簧门

    弹框门就是很多办公区域或者大门,推开后进入后弹簧会自动关闭门。 Unity里通过HingeJoint物理可以实现,如果你需要这样的逼真感觉。 首先在场景中放置一个门框(紫色),作为合页和弹簧的安装处。:) 当然我偷工减料只给一个柱子就够了。 再放一扇木门(土灰色) 如

    2023年04月26日
    浏览(30)
  • 【Unity】什么是刚体(Rigidbody)?刚体怎么用?

    为游戏物体添加一个刚体: 一个物体有了刚体,它就会受Unity模拟出的自然界中的力的影响了 Drag(空气阻力)补充: 空气阻力越大,物体移动时受到的阻力就越大,力的衰减就越快。 Angular Drag(扭矩旋转时空气阻力)补充: 物体受到力后会旋转,Angular Drag就是物体旋转时

    2024年02月05日
    浏览(34)
  • Unity - Rigidbody刚体

    1. rigid.MovePosition(targetPosition)        移动到目标位置 调用执行后         1)rigidbody.position 会立即改变,而transform.position并不会立即生效改变         2)transform.position 需要等到下一次的FixedUpdate执行完毕后才会生效改变,即可在LateUpdate中打印看见          Physics.au

    2024年02月07日
    浏览(74)
  • Unity 获取手机地理位置信息

    在游戏的开发过程中,有时候会遇到需要获取玩家位置信息的需求,比如显示玩家所在的国家城市等。 有一下方法可以参考: 可以根据手机的地区和语言来做判断。 根据IP来判断所处的位置,阿里云啥的都有对应的接口服务。 根据GPS来判断。 以上方法都各有利弊吧,这里简

    2024年02月12日
    浏览(36)
  • unity添加刚体后,穿过物体坠落

    至于原因,好像是两个实体的东西才能碰撞,如果只给球设置一个刚体(rigidbody),别的没设置,就好像是除了球之外都是虚拟的,自然就被球给忽视了。再把地面也设置一个刚体,这样它俩都是实体了,自然就会产生碰撞,相互阻拦。 给穿透的物体添加一个碰撞就好了,比

    2024年02月11日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包