- Unity 2017 Game AI Programming(Third Edition)
- Ray Barrera Aung Sithu Kyaw Thet Naing Swe
- 301字
- 2021-07-02 19:14:16
Choosing transitions
At this point, we have to make some design and logic decisions regarding the way our states will flow into each other. When we map out these transitions, we also want to keep in mind the conditions that trigger the transitions to make sure they are logical and work from a design-standpoint. Out in the wild, when you're applying these techniques on your own, different factors will play into how these transitions are handled. In order to best illustrate the topic at hand, we'll keep our transitions simple and logical:
- Patrol: From patrol, we can transition into chasing. We will use a chain of conditions to choose which state we'll transition into, if any. Can the enemy tank see the player? If yes, we go to the next step; if not, we continue with patrolling.
- Chase: From this state, we'll want to continue to check whether the player is within sight to continue chasing, close enough to shoot, or completely out of sight—that would send us back into the Patrol state.
- Shoot: As earlier, we'll want to check our range for shooting and then the line of sight to determine whether or not we can chase to get within the range.
This particular example has a simple and clean set of transition rules. If we connect our states accordingly, we'll end up with a graph looking more or less similar to this one:
Keep in mind that the placement of the nodes is entirely up to you, and it does not affect the functionality of the state machine in any way. You can try to place your nodes in a way that keeps them organized so that you can track your transitions visually.
Now that we have our states mapped out, let's assign some behaviors to them.
- Flutter開發實戰詳解
- 自己動手實現Lua:虛擬機、編譯器和標準庫
- Visual Basic編程:從基礎到實踐(第2版)
- Raspberry Pi for Secret Agents(Third Edition)
- INSTANT MinGW Starter
- C程序設計案例教程
- Functional Kotlin
- Big Data Analytics
- Scientific Computing with Scala
- Unity Game Development Scripting
- C/C++程序員面試指南
- Qlik Sense? Cookbook
- Python機器學習與量化投資
- Developing Java Applications with Spring and Spring Boot
- Python無監督學習