当前位置: 首页>>代码示例>>C#>>正文


C# Building.getWorldBase方法代码示例

本文整理汇总了C#中Building.getWorldBase方法的典型用法代码示例。如果您正苦于以下问题:C# Building.getWorldBase方法的具体用法?C# Building.getWorldBase怎么用?C# Building.getWorldBase使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Building的用法示例。


在下文中一共展示了Building.getWorldBase方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Intersects

    public bool Intersects(Building building)
    {
        Vector3[] MyPoints = this.getWorldBase ();
        Vector3[] OtherPoints = building.getWorldBase ();

        //new code, does a quicker line intersect check
        for (int me=0; me<4; me++)
        {
            LineSegment myLine = new LineSegment(new Vector2(MyPoints[me%4].x,MyPoints[me%4].z),
                                                 new Vector2(MyPoints[(me+1)%4].x,MyPoints[(me+1)%4].z));

            for (int other=0; other<4; other++)
            {
                LineSegment otherLine = new LineSegment(new Vector2(OtherPoints[other%4].x,OtherPoints[other%4].z),
                                                        new Vector2(OtherPoints[(other+1)%4].x,OtherPoints[(other+1)%4].z));
                Vector2 I0,I1;
                if(this.inter2Segments(myLine,otherLine,out I0,out I1) != 0)
                    return true;
            }
        }

        return false;

        //old code, checks bounding boxes
        /*for(int i=0;i<4;i++){
            Vector3 dir = points[(i+1)%4] - points[i%4];
            Ray ray = new Ray(points[i%4]-(dir*RoadRenderer.RoadWidth),dir);
            RaycastHit hit = new RaycastHit();
            float distance = Vector3.Distance(points[i%4],points[(i+1)%4]);

            if(building.MyCollider.Raycast(ray,out hit,distance * 1.35f))
                return true;
        }

        for(int i=0;i<4;i+=2){
            Vector3 dir = points[(i+2)%4] - points[i%4];
            Ray ray = new Ray(points[i%4]-(dir*RoadRenderer.RoadWidth),dir);
            RaycastHit hit = new RaycastHit();
            float distance = Vector3.Distance(points[i%4],points[(i+2)%4]);

            if(building.MyCollider.Raycast(ray,out hit,distance * 1.35f))
                return true;
        }*/

        //Physics.OverlapSphere(building.
        //if (this.MyCollider. .bounds.Intersects (building.MyCollider.bounds))
        //	return true;

        //return false;
    }
开发者ID:cybercritic,项目名称:City-Generator,代码行数:50,代码来源:Buildings.cs


注:本文中的Building.getWorldBase方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。