ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2024ǯ01·î08Æü(·î) 16:30:25ÍúÎò
¡¡°Ê²¼¤ÏºîÀ®¥µ¥ó¥×¥ë¤Ç¤¹¡£

¡¡¥²¡¼¥à³«È¯¤ò»Ï¤á¤ëºÝ¡¢¥×¥í¥°¥é¥à¤Î¹½Â¤¤äÀ߷פ¬½ÅÍפǤ¹¡£
Æäˡ¢¥¯¥é¥¹¿Þ¤ÈÀ߷פÎÍý²ò¤Ï¡¢¥×¥í¥¸¥§¥¯¥È¤ÎÀ®¸ù¤ËÉԲķç¤Ç¤¹¡£
¡¡
¡¡¥¯¥é¥¹¿Þ¤Ï¡¢¥½¥Õ¥È¥¦¥§¥¢¤Î¹½Â¤¤ò»ë³ÐŪ¤Ëɽ¸½¤¹¤ë¤¿¤á¤Î¿Þ¤Ç¡¢¥¯¥é¥¹¤ä¤½¤Î´Ö¤Î´Ø·¸¤ò¼¨¤·¤Þ¤¹¡£
Unity¤Î¥×¥í¥¸¥§¥¯¥È¤Ë¤ª¤¤¤Æ¡¢¥¯¥é¥¹¿Þ¤Ï¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ä¥³¥ó¥Ý¡¼¥Í¥ó¥È¡¢¥¹¥¯¥ê¥×¥È¤Ê¤É¤Î¥¯¥é¥¹¤È¤½¤ì¤é¤Î´ØÏ¢À¤ò¼¨¤¹¤Î¤ËÌòΩ¤Á¤Þ¤¹¡£
¡¡¥¯¥é¥¹¿Þ¤òºîÀ®¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥×¥í¥°¥é¥à¤Î¹½Â¤¤ò»ë³ÐŪ¤Ë¼¨¤·¡¢°Û¤Ê¤ë¥¯¥é¥¹´Ö¤Î´Ø·¸¤ä°Í¸À¤òÍý²ò¤·¤ä¤¹¤¯¤·¤Þ¤¹¡£
¤³¤ì¤Ë¤è¤ê¡¢³«È¯¼Ô¤Ï¥×¥í¥°¥é¥à¤ò¤è¤ê½ÀÆð¤Ç³ÈÄ¥²Äǽ¤Ê·Á¤ÇÀ߷פǤ¤Þ¤¹¡£
¡¡PlantUML ¤ò³èÍѤ¹¤ë¤³¤È¤Ë¤è¤ê¡¢Rider ¾å¤Ç¥¯¥é¥¹¿Þ¤òºîÀ®¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£
¡¡PlantUML ¤Î¸ø¼°¥µ¥¤¥È¤Ï¤³¤Á¤é¤Ç¤¹¡£
ƳÆþÊýË¡¡¢FAQ ¤Ê¤É¤âÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
PlantUML ¸ø¼°¥µ¥¤¥È
https://plantuml.com/ja/
¡¡Rider ¤Î¸ø¼°¥Þ¡¼¥±¥Ã¥È¥×¥ì¥¤¥¹¤«¤é PlantUML ¥×¥é¥°¥¤¥ó¤ò¥À¥¦¥ó¥í¡¼¥É½ÐÍè¤Þ¤¹¡£
PlantUML integration
https://plugins.jetbrains.com/plugin/7017-plantuml...
¡¡¾åµ¤Ç¤ÎƳÆþ¤¬Æñ¤·¤¤¾ì¹ç¡¢¥µ¥¤¥ÈºÇ²¼Ãʤ˥ê¥ó¥¯¤òÍÑ°Õ¤·¤Æ¤¢¤ê¤Þ¤¹¡£
¡¡Rider Æâ¤Ë PlantUML ¥¦¥£¥ó¥É¥¦¤ò³«¤¯¤³¤È¤Ç¥¯¥é¥¹¿Þ¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
¥á¥Ë¥å¡¼¤è¤ê View¡¡¢ª Tool Windows¡¡¢ª¡¡PlantUML ¤Ç PlantUML ¥¦¥£¥ó¥É¥¦¤ò³«¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¥Õ¥¡¥¤¥ë´ÉÍý¤Î¤¿¤á¡¢ÀìÍѤΥե©¥ë¥À¤òºîÀ®¤·¡¢¤½¤ÎÃæ¤Ë PlantUML ¥Õ¥¡¥¤¥ë¤ÎºîÀ®¤¹¤ë¤È´ÉÍý¤·¤ä¤¹¤¯¤Ê¤ê¤Þ¤¹¡£
¥Õ¥©¥ë¥À¤Î¾å¤Ç¥á¥Ë¥å¡¼¤ò³«¤¡¢Add ¢ª PlantUML ¤Ç PlantUML ¥Õ¥¡¥¤¥ë¤òºîÀ®¤Ç¤¤Þ¤¹¡£
¤³¤Á¤é¤ËÀìÍѤεˡ¤ò»È¤Ã¤Æ¥¯¥é¥¹¿Þ¤òºîÀ®¤·¤Æ¤¤¤¤Þ¤¹¡£
¡¡¤Ê¤ª¡¢¥Õ¥¡¥¤¥ë̾¤Î̾¾Î¤Ï¥×¥í¥¸¥§¥¯¥È̾¡¢namespace¡¢Ìò³ä¤´¤È¤Î̾Á°¤Ë Diaglam ¤ò¹ç¤ï¤»¤Æ¤ª¤¯¤È¤ï¤«¤ê¤ä¤¹¤¤¤Ç¤¹¡£

¡¡¥¯¥é¥¹¿Þ¤ÎÀ©ºîÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢¸ø¼°¥µ¥¤¥È¤ËµË¡¤¬µºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
PlantUML ¥¯¥é¥¹¿Þ
https://plantuml.com/ja/class-diagram
¡¡Unity ¤Î¸ø¼°¥×¥í¥¸¥§¥¯¥È¤Ç¤¢¤ë RunnerGame ¥Æ¥ó¥×¥ì¡¼¥È¤Î¥¯¥é¥¹¿Þ¤ò PlantUML ¤Ë¤ÆºîÀ®¤·¡¢½ÐÎϤ·¤Æ¤ß¤Þ¤·¤¿¡£
https://blog.unity.com/ja/games/rapid-prototyping-...
https://unity.com/ja/features/build-a-runner-game
@startuml 'https://plantuml.com/sequence-diagram package "HyperCasual.Core" { package "Singleton"{ abstract class AbstractSingleton<T>{ {static} T s_Instance +{static} T Instance #virtual void Awake() } } package "StateMachine"{ interface ILink{ +bool Validate(out IState nextState) +void Enable() +void Disable() } class Link { -readonly IState m_NextState +Link(IState nextState) +bool Validate(out IState nextState) } class EventLink{ -IState m_NextState -AbstractGameEvent m_GameEvent -bool m_EventRaised +EventLink(AbstractGameEvent gameEvent, IState nextState) +bool Validate(out IState nextState) +void OnEventRaised() +void Enable() +void Disable() } interface IState{ +void Enter() +IEnumerator Execute() +void Exit() +void AddLink(ILink link) +void RemoveLink(ILink link) +void RemoveAllLinks() +bool ValidateLinks(out IState nextState) +void EnableLinks() +void DisableLinks() } abstract class AbstractState{ +virtual string Name -readonly List<ILink> m_Links } class State{ -readonly Action m_OnExecute +State(Action onExecute) +override IEnumerator Execute() } class DelayState{ +override string Name -readonly float m_DelayInSeconds +DelayState(float delayInSeconds) +override IEnumerator Execute() } class PauseState{ -readonly Action m_OnPause +override string Name +PauseState(Action onPause) +override void Enter() +override IEnumerator Execute() +override void Exit() } class LoadSceneState{ readonly string m_Scene readonly SceneController m_SceneController readonly Action m_OnLoadCompleted +override string Name +LoadSceneState(SceneController sceneController, string scene, Action onLoadCompleted = null) +override IEnumerator Execute() } class UnloadLastSceneState{ -readonly SceneController m_SceneController +UnloadLastSceneState(SceneController sceneController) +override IEnumerator Execute() } class StateMachine{ +IState CurrentState +virtual void SetCurrentState(IState state) -Coroutine m_CurrentPlayCoroutine -bool m_PlayLock -IEnumerator Play() -void Skip() +virtual void Run(IState state) -Coroutine m_LoopCoroutine +virtual void Run() +void Stop() #virtual IEnumerator Loop() +bool IsRunning } } package "EventSystem"{ interface IGameEventListener{ +OnEventRaised() } abstract class AbstractGameEvent{ -readonly List<IGameEventListener> m_EventListeners +void Raise() +void AddListener(IGameEventListener listener) +void RemoveListener(IGameEventListener listener) +{abstract} void Reset() } class AppPauseDetector{ -[SerializeField] AbstractGameEvent m_PauseEvent +bool IsPaused -OnApplicationFocus(bool hasFocus) -void OnApplicationPause(bool pauseStatus) } class TriggerEvent{ -const string k_PlayerTag -[SerializeField] AbstractGameEvent m_Event -OnTriggerEnter(Collider col) } } class GenericGameEventListener{ +AbstractGameEvent m_Event +Action EventHandler +void Subscribe() +void Unsubscribe() +void OnEventRaised() } } package "HyperCasual.Gameplay" { class ItemPickedEvent{ +int Count +override void Reset() } class LevelCompletedEvent { +override void Reset() } class LevelLostEvent { +override void Reset() } } IState <|.. AbstractState AbstractState <|-- State AbstractState <|-- DelayState AbstractState <|-- LoadSceneState AbstractState <|-- UnloadLastSceneState AbstractState <|-- PauseState ILink <|.. Link ILink <|.. EventLink IGameEventListener <|.. EventLink IGameEventListener <|.. GenericGameEventListener ScriptableObject <|-- AbstractGameEvent AbstractGameEvent <|-- ItemPickedEvent AbstractGameEvent <|-- LevelCompletedEvent AbstractGameEvent <|-- LevelLostEvent @enduml
¡¡Æ³ÆþÊýË¡¤Ë¤Ä¤¤¤Æ¤â¾Ü¤·¤¯·ÇºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
SHIMAHINUKO ÍÍ
Rider¤ÇPlantUML¤ò»È¤Ã¤ÆUnity¤Î¤¿¤á¤Î¥¯¥é¥¹¿Þ¤ò½ñ¤¯
DevNote ÍÍ
¡ÚmacOS¡ÛRider¤Ç¥¯¥é¥¹¿Þ¤ò½ñ¤¯¥×¥é¥°¥¤¥óPlantUML Integration
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯