using System.Collections; using System.Collections.Generic; using UnityEngine; using MoreMountains.Feedbacks; using MoreMountains.Tools; namespace MoreMountains.Feel { /// /// A manager used to pilot Feel's Letters demo scene /// It detects input, and plays corresponding feedbacks when needed /// public class LettersDemoManager : MonoBehaviour { [Header("Feedbacks")] /// a feedback to play when the F letter gets activated public MMFeedbacks FeedbackF; /// a feedback to play when the first E letter gets activated public MMFeedbacks FeedbackE1; /// a feedback to play when the second E letter gets activated public MMFeedbacks FeedbackE2; /// a feedback to play when the L letter gets activated public MMFeedbacks FeedbackL; protected Vector3 _mousePosition; /// /// On Update we look for input /// protected virtual void Update() { HandleInput(); } /// /// Every frame, looks for input, and activates the corresponding letter if needed /// protected virtual void HandleInput() { if (FeelDemosInputHelper.CheckAlphaInputPressedThisFrame(1)) { PlayF(); } if (FeelDemosInputHelper.CheckAlphaInputPressedThisFrame(2)) { PlayE1(); } if (FeelDemosInputHelper.CheckAlphaInputPressedThisFrame(3)) { PlayE2(); } if (FeelDemosInputHelper.CheckAlphaInputPressedThisFrame(4)) { PlayL(); } if (FeelDemosInputHelper.CheckMouseDown()) { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(FeelDemosInputHelper.MousePosition()); if ( Physics.Raycast (ray,out hit,100.0f)) { switch (hit.transform.name) { case "ColliderF": PlayF(); break; case "ColliderE1": PlayE1(); break; case "ColliderE2": PlayE2(); break; case "ColliderL": PlayL(); break; } } } } /// /// Activates the letter F /// protected virtual void PlayF() { FeedbackF?.PlayFeedbacks(); } /// /// Activates the first E letter /// protected virtual void PlayE1() { FeedbackE1?.PlayFeedbacks(); } /// /// Activates the second E letter /// protected virtual void PlayE2() { FeedbackE2?.PlayFeedbacks(); } /// /// Activates the letter L /// protected virtual void PlayL() { FeedbackL?.PlayFeedbacks(); } } }