unity高空抛物 RaycastHit---API

RaycastHit

射线

    //
    // 摘要:
    //     Structure used to get information back from a raycast.
    //     用于从光线投射中获取信息的结构。
    [NativeHeader("PhysicsScriptingClasses.h")]
    [NativeHeader("Runtime/Interfaces/IRaycast.h")]
    [NativeHeader("Runtime/Dynamics/RaycastHit.h")]
    [UsedByNativeCode]
    public struct RaycastHit
    {
        //
        // 摘要:
        //     The Collider that was hit.
        //     命中的 Collider。
        public Collider collider { get; }
        //
        // 摘要:
        //     The impact point in world space where the ray hit the collider.
        //     世界空间中射线命中碰撞体的撞击点。
        public Vector3 point { get; set; }
        //
        // 摘要:
        //     The normal of the surface the ray hit.
        //     射线命中的表面的法线。
        public Vector3 normal { get; set; }
        //
        // 摘要:
        //     The barycentric coordinate of the triangle we hit.
        //     命中的三角形的重心坐标。
        public Vector3 barycentricCoordinate { get; set; }
        //
        // 摘要:
        //     The distance from the ray's origin to the impact point.
        //     从射线原点到撞击点的距离。
        public float distance { get; set; }
        //
        // 摘要:
        //     The index of the triangle that was hit.
        //     命中的三角形的索引。
        public int triangleIndex { get; }
        //
        // 摘要:
        //     The uv texture coordinate at the collision location.
        //     碰撞位置处的 UV 纹理坐标。
        public Vector2 textureCoord { get; }
        //
        // 摘要:
        //     The secondary uv texture coordinate at the impact point.
        //     撞击点处的辅助 UV 纹理坐标。
        public Vector2 textureCoord2 { get; }
        [Obsolete("Use textureCoord2 instead. (UnityUpgradable) -> textureCoord2")]
        public Vector2 textureCoord1 { get; }
        //
        // 摘要:
        //     The Transform of the rigidbody or collider that was hit.
        //     命中的刚体或碰撞体的 Transform。
        public Transform transform { get; }
        //
        // 摘要:
        //     The Rigidbody of the collider that was hit. If the collider is not attached to
        //     a rigidbody then it is null.
        //     命中的碰撞体的 Rigidbody。如果该碰撞体未附加到刚体,则值为 /null/。
        public Rigidbody rigidbody { get; }
        //
        // 摘要:
        //     The uv lightmap coordinate at the impact point.
        //     撞击点处的 UV 光照贴图坐标。
        public Vector2 lightmapCoord { get; }
    }

hit.normal:The normal of the surface the ray hit.
物品掉落到头上弹开:

    RaycastHit hit; string temp;
    /// <summary>
    /// 判断物体砸落到哪个面
    /// </summary>
    void JudgePoint() 
    {
        Vector3 downss = MediaCtrl.OBJS["SM_NvHai_PZ"].transform.position -transform.position;
        //print(downss);
        if (Physics.Raycast(transform.position, downss, out hit, 1000f))
        {
            temp = Vector3.Dot(hit.normal, Vector3.forward) > 0 ? temp = "左" : temp = "右";
        }
    }

左右滑动,躲避高空坠物
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值