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日
    浏览(76)
  • Unity常用方法--Physics2D.OverlapCircleAll(获取一个圆形区域内所有碰撞器的列表)

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

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

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

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

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

    2023年04月24日
    浏览(95)
  • unity中的Hinge Joint铰链关节

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

    2024年02月05日
    浏览(42)
  • 通过Unity的铰链(HingeJoint)来制作弹簧门

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

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

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

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

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

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

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

    2024年02月12日
    浏览(50)
  • Unity物理组件之刚体Rigidbody

    1、刚体简介 刚体:Rigidbody,属于物理类组件 作用:添加了刚体组件的游戏物体,可以在物体系统的控制下来运动,刚体可接受外力和扭矩力用来保证游戏对象像在真实世界中那样进行运动。任何游戏对象只有添加了刚体组件才能受到重力的影响,通过脚本为游戏对象添加的作

    2023年04月09日
    浏览(89)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包