コード例 #1
0
		/// <description>
		/// Surface Methods for all surface models in level view
		/// </description>

		public void OnSurfaceTerrainCreated(Models.Surfaces surfaceModel) {
			
			int x = surfaceModel.X;
			int y = surfaceModel.Y;
			GameObject gameObject = new GameObject ();
			Vector3 point = Utility.ConvertCartesianToIsometric (new Vector3 (x, y, 0), offset);

			surfaceModel.Terrain = Models.Surfaces.TerrainType.Empty;

//			Debug.Log ("Views.Level --> OnSurfaceTerrainCreated : Creating surface view for surface models");
			//Create an object of Views.Surface class
			Views.Surfaces surfaceView = new Views.Surfaces(gameObject);
			surfaceView.GameObject.name = "Surface_" + x + "_" + y;
			surfaceView.GameObject.transform.SetParent (viewLevelInstance.transform, true);

			surfaceView.GameObject.AddComponent<SpriteRenderer> ();
			surfaceView.GameObject.GetComponent<SpriteRenderer> ().sprite = Empty;
			surfaceView.GameObject.GetComponent<SpriteRenderer> ().sortingOrder = Utility.SortingOrderNumber (level.Width, level.Height, x, y);
			surfaceView.SetPosition (point.x, point.y);

			//FIXME: for now all the sprite tiles will be empty

			surfaceModelViewMap.Add (surfaceModel, surfaceView);

//			surfaceModel.RegisterTerrainCallBack (OnSurfaceTerrainChanged);
//			Debug.Log ("Views.Level --> OnSurfaceTerrainCreated : SurfaceModel Created and displayed on screen " + surfaceModelViewMap.Count);
		}
コード例 #2
0
		public void OnSurfaceTerrainChanged(Models.Surfaces surfaceModel) {
			Debug.Log ("On surface changed");

			if (surfaceModelViewMap.ContainsKey (surfaceModel) == false) {
				Debug.Log ("Views.Levels --> On surface Changed : surface model does not exist");
				return;
			}

			Views.Surfaces surfaceView = surfaceModelViewMap [surfaceModel];

			//FIXME: Major Re-Write Needed
			if (surfaceModel.Terrain == Models.Surfaces.TerrainType.Empty) {
				surfaceView.GameObject.GetComponent<SpriteRenderer> ().sprite = Empty;
			} else if (surfaceModel.Terrain == Models.Surfaces.TerrainType.Lake) {
				surfaceView.GameObject.GetComponent<SpriteRenderer> ().sprite = Lake[UnityEngine.Random.Range(0, Lake.Length)];
			} else if (surfaceModel.Terrain == Models.Surfaces.TerrainType.Mountain) {
				surfaceView.GameObject.GetComponent<SpriteRenderer> ().sprite = Mountain[UnityEngine.Random.Range(0, Mountain.Length)];
			} else if (surfaceModel.Terrain == Models.Surfaces.TerrainType.Plain) {
				surfaceView.GameObject.GetComponent<SpriteRenderer> ().sprite = Plain[UnityEngine.Random.Range(0, Plain.Length)];
			} else {
				Debug.Log ("Views.Levels - Trying to assign sprite based on terrain type, but terrain type not found");
			}

		}