美文网首页
Unity3D基础论-开发游戏必备的组件、属性、方法(2)

Unity3D基础论-开发游戏必备的组件、属性、方法(2)

作者: 斗魁 | 来源:发表于2017-07-11 14:49 被阅读132次
    努力、奋斗

    物理材质(Physic Material):

    项目视图(project)右击  Create - Physic Material    选择创建

    Physic Material

    属性依次为:动态摩擦力  静态摩擦力    反弹力    组合摩擦力(取平均值、取最小值、取乘积值、取最大值)组合弹力(取平均值、取最小值、取乘积值、取最大值)

    使用方法:  直接把设置好的物理材质拖进去就行了

    使用方法

    射线Ray:

    射线类Ray组成部分、起点(0rigin)方向(direction)

    //实例化一条射线

    Camera.main主摄像机             ScreenPointToRay将屏幕上的一个点转换成射线

    Input.mousePosition获取鼠标坐标

    Ray   r =  Camera.main.ScreenPointToRay(Input.mousePosition);

    Raycast发射物理射线返回一个碰撞检测对象RaycastHit【参数有  起点  方向  距离】

    Physics物理学                                     Physics.Raycast(r, 1000)

    raycastAll发射物理射线,返回所有碰撞检测对象RaycastHit

    用来描述射线射到的物体

    RaycastHit hit;

    属性collider碰撞物体的Collider组件point碰撞点坐标

    .point可以获取射线射到的点的世界坐标

    世界坐标器

    本地坐标器

    摄像机坐标系:

    屏幕坐标系:(ScreenPoint)

    视图坐标系:(ViewPoint)

    示例:

    void RayCastTest()

    {

    //实例化一条射线

    Ray r = Camera.main.ScreenPointToRay(Input.mousePosition);

    //用来描述射线射到的物体

    RaycastHit hit;

    //

    if(Physics.Raycast(r, out hit,100)){

    //打印射中物体的名字

    Debug.Log(hit.transform.name);

    if (hit.transform.name == "Plane")

    {

    //.point可以获取射线射到的点的世界坐标

    //transform.position = hit.point + new Vector3(0,0.5f,0);

    transform.position = Vector3.Lerp(transform.position, hit.point + new Vector3(0, 0.5f, 0), Time.deltaTime * 5);

    }

    }

    相关文章

      网友评论

          本文标题:Unity3D基础论-开发游戏必备的组件、属性、方法(2)

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