Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/solutena/behavior-pattern
https://github.com/solutena/behavior-pattern
behavior design-pattern unity
Last synced: 4 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/solutena/behavior-pattern
- Owner: solutena
- Created: 2022-12-02T09:57:31.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-16T15:24:25.000Z (5 months ago)
- Last Synced: 2024-06-17T14:56:20.992Z (5 months ago)
- Topics: behavior, design-pattern, unity
- Language: C#
- Homepage:
- Size: 14.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Behaviour Pattern
아이템, 몬스터, 캐릭터 등 다양한 고유 효과를 구현하기 위한 디자인 패턴입니다.
`Behaviour` 클래스를 상속하며
키를 통해 클래스를 가져올 수 있고, 클래스 이름이 키가 됩니다.
클래스는 처음으로 가져올 때 생성합니다.
## 예제
```
public enum ItemGrade
{
None,
Normal,
Rare,
Unique,
Legendary,
Myth,
}public enum ItemType
{
None,
Weapon,
Armor
}public abstract class ItemBehaviour : Behaviour
{
public abstract ItemGrade ItemGrade { get; }
public abstract ItemType ItemType { get; }public abstract void OnUse();
public virtual void OnGet() { }
public string Name => Key
}
```반드시 설정해야 하는 멤버는 `abstract` 으로 구현합니다.
설정하지 않아도 되거나 기본값을 지정할 멤버는 `virual` 로 구현합니다.
변경되지 않을 멤버는 키워드 없이 구현합니다.
```
public class Item_Sword : ItemBehaviour
{
public override ItemGrade ItemGrade { get; } = ItemGrade.Normal;
public override ItemType ItemType { get; } = ItemType.Weapon;public override void OnUse()
{
//사용 시 효과
}
public override void OnGet()
{
//획득 시 효과
}
}
```
```
void Start()
{
ItemBehaviour Sword = ItemBehaviour.Get();
}
```예제의 아이템은 `ItemBehaviour.Get()` 함수로 가져올 수 있습니다.