コード例 #1
0
        public IMapView CreateMapView(GameObject mapZonePrefab, IMapModel mapModel)
        {
            var holeGameObject = new GameObject();
            var zoneViews      = new List <IMapZoneView>();
            var mapRoot        = CreateAndRotateMapRoot(mapModel.MapInfo);

            foreach (var zoneModel in mapModel.MapZones)
            {
                var zoneRepresentation = _monoBehaviourProvider.CreateInstance(mapZonePrefab, mapRoot);
                zoneRepresentation.name = zoneModel.Name;

                DrawZoneOutlines(zoneRepresentation, zoneModel, holeGameObject);

                var mesh       = _meshGenerator.CreateZoneMesh(zoneModel);
                var meshFilter = zoneRepresentation.GetComponent <MeshFilter>();
                meshFilter.mesh = mesh;
                var meshCollider = zoneRepresentation.GetComponent <MeshCollider>();
                meshCollider.sharedMesh = mesh;
                zoneViews.Add(new MapZoneView(zoneModel.Id, zoneRepresentation));
            }

            return(new MapView(zoneViews, mapRoot));
        }