Building Interaction

Back
Tags:
Building
Example of how to handle interaction events with buildings.
Requirement: Tileset Control, Building Manager
Usage instructions:
Add this script to map GameObject, start the scene and click on the building.
BuildingClickExample.cs
/*         INFINITY CODE         */
/*   https://infinity-code.com   */

using UnityEngine;

namespace InfinityCode.OnlineMapsExamples
{
    /// <summary>
    /// Example of how to handle interaction events with buildings.
    /// </summary>
    [AddComponentMenu("Infinity Code/Online Maps/Examples (API Usage)/BuildingClickExample")]
    public class BuildingClickExample : MonoBehaviour
    {
        /// <summary>
        /// Reference to the building manager. If not specified, the current instance will be used.
        /// </summary>
        public OnlineMapsBuildings buildings;

        /// <summary>
        /// This method is called when the script starts
        /// </summary>
        private void Start()
        {
            if (buildings == null) buildings = OnlineMapsBuildings.instance;
            
            // Subscribe to the building creation event
            buildings.OnBuildingCreated += OnBuildingCreated;
        }

        /// <summary>
        /// This method is called when click on building
        /// </summary>
        /// <param name="building">The building on which clicked</param>
        private void OnBuildingClick(OnlineMapsBuildingBase building)
        {
            Debug.Log("click: " + building.id);
        }

        /// <summary>
        /// This method is called when each building is created
        /// </summary>
        /// <param name="building">The building that was created</param>
        private void OnBuildingCreated(OnlineMapsBuildingBase building)
        {
            // Subscribe to interaction events
            building.OnPress += OnBuildingPress;
            building.OnRelease += OnBuildingRelease;
            building.OnClick += OnBuildingClick;
        }

        /// <summary>
        /// This method is called when press on building
        /// </summary>
        /// <param name="building">The building on which pressed</param>
        private void OnBuildingPress(OnlineMapsBuildingBase building)
        {
            Debug.Log("Press: " + building.id);
        }

        /// <summary>
        /// This method is called when release on building
        /// </summary>
        /// <param name="building">The building on which released</param>
        private void OnBuildingRelease(OnlineMapsBuildingBase building)
        {
            Debug.Log("Release: " + building.id);
        }
    }
}