美文网首页
Unity3D物理组件之刚体(九)

Unity3D物理组件之刚体(九)

作者: TonyWan_AR | 来源:发表于2016-12-16 18:21 被阅读240次

本节要点

#1.变换组件运动特点

使用 Transform.Translate()方法移动物体的位置,特点如下:

①移动的物体会“穿透”场景中其他的物体模型;

②移动的物体不会受重力影响(到达场景边缘外,不会下落)。

#2.刚体组件简介

1.刚体简介

刚体:Rigidbody,属于物理类组件。

作用:添加了刚体组件的游戏物体,就有了重力,就会做自由落体运动。也就意

味着可以像现实中的物体一样运动。

2.给物体添加刚体组件

选中游戏物体-->菜单 Component-->Physics-->Rigidbody

#3.刚体组件属性

1.Mass[质量]

设置物体的质量,也就是重量。质量单位是 KG。

2.Drag[阻力]

空气阻力,0 表示无阻力,值很大时物体会停止运动。

3.Angular Drag[角阻力]

受到扭曲力时的空气阻力,0 表示无阻力,值很大时物体会停止运动。

4.Use Gravity[使用重力]

是否使用重力。

#4.使用刚体移动物体

1.相关方法

Rigidbody.MovePosition(Vector3):使用刚体移动物体的位置。

使用刚体移动物体,物体是根据世界坐标系的方向移动的。

使用刚体移动物体,物体会触发物理相关的事件。

2.参数

MovePosition 中的 Vector3 要使用“当前位置”+ 方向 的方式。

Transform.Position:属性 当前物体的位置。

3.特点

使用刚体移动物体,特点如下:

①会于场景中的模型物体发生碰撞;

②会受重力影响(到达场景边缘外,会下落)。


场景视图

关键代码

InputTest

public class InputTest : MonoBehaviour {

    // Use this for initialization
    void Start () {
    
    }
    
    // Update is called once per frame
    void Update () {

        //键盘的值
        //按下A键持续返回true
        if (Input.GetKey(KeyCode.A))
        {
            Debug.Log("Get...........A");
        }
        //按下A键瞬间返回true
        if (Input.GetKeyDown(KeyCode.A))
        {
            Debug.Log("Getkeydown...........A Down!");
        }
        //松开A键瞬间返回true
        if (Input.GetKeyUp(KeyCode.A))
        {
            Debug.Log("Getkeyup..............A Up!");
        }


        //鼠标的值
        //获取鼠标的按键,持续返回true
        if (Input.GetMouseButton(0))
        {
            Debug.Log("Mouse Left");
        }


        //点击鼠标按键瞬间返回true
        if (Input.GetMouseButtonDown(0))
        {
            Debug.Log("Left Down!");
        }

        //松开鼠标瞬间返回true
        if (Input.GetMouseButtonUp(0))
        {
            Debug.Log("Left Up!");
        }
    }
}


StudentMove

public class StudentMove : MonoBehaviour {

    private Transform m_Transform;

    // Use this for initialization
    void Start () {

        //获取相应组件的引用,声明同类型字段去接收
        m_Transform=gameObject.GetComponent<Transform>();
    }
    
    // Update is called once per frame
    void Update () {
    
        //移动物体位置的关键语句
      //  m_Transform.Translate(Vector3.forward*0.1f,Space.World);
        //参数1:Vector3移动物体的三维变量(枚举类型),表示x,y,z;Space参数2:移动物体的坐标系(枚举类型)自身坐标系或世界坐标系
        //0.1f 表示将当前速度下调到原来十分之一;切记加上f

        //获取相应键控制方向;w a s d
        if (Input.GetKey(KeyCode.W))
        {
            m_Transform.Translate(Vector3.forward*0.1f,Space.World);//往前
        }

        if (Input.GetKey(KeyCode.S))
        {
            m_Transform.Translate(Vector3.back * 0.1f, Space.World);//向后
        }

        if (Input.GetKey(KeyCode.A))
        {
            m_Transform.Translate(Vector3.left * 0.1f, Space.World);//向左
        }

        if (Input.GetKey(KeyCode.D))
        {
            m_Transform.Translate(Vector3.right * 0.1f, Space.World);//向右
        }


    
    }
}

小结

游戏物体与组件.png 疯狂的小鸟.jpg Unity API.png

相关文章

  • Unity3D物理组件之刚体(九)

    本节要点 场景视图 关键代码 InputTest StudentMove 小结

  • u3d 基础知识(刚体等)

    刚体组件: 刚体:Rigidbody, 属于物理类组件; 作用:添加了刚体的组件的游戏物体,就有了重力,就会做自由...

  • 刚体介绍

    Rigidbody(刚体) 在物体中添加physics(物理)-(Rigidbody)刚体组件,使物体具有物理特性...

  • Unity 刚体组件和碰撞器

    一,刚体组件 ADD添加刚体组件 定义 刚体一种组件,可让物理模拟现实物体的运动状态,添加刚体后物体将受重力影响,...

  • 刚体属性

    物理引擎 刚体组件 rigidbody Mass 质量单位 人物角色为1的话,别的对象如果带有刚体组件都会按着这个...

  • Unity3D-Collider(碰撞器)

    要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理组件的...

  • Unity之碰撞器与触发器

    要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理组件的...

  • Unity笔记

    Unity3D 官方文档 2D游戏的起始2 2D物理 全局设置与刚体 Unity5.6 2D物理引擎Effecto...

  • 碰撞器

    相关文章 《物理系统概述》《刚体》《碰撞器》 概述 刚体的主要作用是使物体能够受力并施力,但只有刚体组件的物体不能...

  • 03物理引擎

    人机交互 碰撞器 刚体组件 碰撞检测 触发事件 物理材质 射线

网友评论

      本文标题:Unity3D物理组件之刚体(九)

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