コード例 #1
0
        /// <summary>
        /// Add simple ground plane to block layout.
        /// </summary>
        public static GameObject AddGroundPlane(
            ref DFBlock blockData,
            Transform parent            = null,
            ClimateBases climateBase    = ClimateBases.Temperate,
            ClimateSeason climateSeason = ClimateSeason.Summer)
        {
            DaggerfallUnity dfUnity = DaggerfallUnity.Instance;

            if (!dfUnity.IsReady)
            {
                return(null);
            }

            GameObject go = new GameObject("Ground");

            if (parent != null)
            {
                go.transform.parent = parent;
            }

            // Assign components
            DaggerfallGroundPlane dfGround   = go.AddComponent <DaggerfallGroundPlane>();
            MeshFilter            meshFilter = go.GetComponent <MeshFilter>();

            // Assign climate and mesh
            Color32[] tileMap;
            Mesh      mesh = dfUnity.MeshReader.GetSimpleGroundPlaneMesh(
                ref blockData,
                out tileMap,
                dfUnity.MeshReader.AddMeshTangents,
                dfUnity.MeshReader.AddMeshLightmapUVs);

            if (mesh)
            {
                meshFilter.sharedMesh = mesh;
            }

            // Assign tileMap and climate
            dfGround.tileMap = tileMap;
            dfGround.SetClimate(dfUnity, climateBase, climateSeason);

            // Assign collider
            if (dfUnity.Option_AddMeshColliders)
            {
                go.AddComponent <BoxCollider>();
            }

            // Assign static
            if (dfUnity.Option_SetStaticFlags)
            {
                GameObjectHelper.TagStaticGeometry(go);
            }

            return(go);
        }