ScriptableObject 사용법 사용법
5264 단어 Unity
ScriptableObject란?
솔직히 이런 말을 해도 좋을지 모르겠지만, 이 3가지 사용법 혹은 이들을 복합해서 사용할 수 있다.
본래의 사용법은 이런 느낌(일까?)
h tps://에쿠아보. 코 m / 아보 tsc rip b b-o b g ct
드라크에 슬라임이 9마리 정도 나오는 전투가 있다.
이 슬라임 1장씩을 인스턴스화하면 그만큼 메모리를 먹기 때문에, 참조처를 같게 하는 것으로 먹는 메모리를 줄일 수 있다.
이것이 9체이니까 좋지만, 1000체라든지 늘어나면 같은 곳을 참조하는 편이 좋지요.
ScriptableObject의 장점
ScriptableObject에 GameObject나 Prefab을 넣을 수 있는 것.
htps : // m / 잡아 P / ms / 1d0c8 3d8040cb413fc
이것으로 일일이 prefab로부터 호출할 필요가 없다. 라고 할까 취급하기 쉽다.
그래서 같은 객체에서도 상태를 인스펙터 상으로 바꿀 수 있다.
예를 들어 무기의 데이터를 만들기 위해 이런 ScriptableObject를 만들어 보자.
WeaponData.csusing System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(menuName = "MyScriptable/Create WeaponData")]
//project上でWeaponDataを新規作成できるようにする
public class WeaponData : ScriptableObject {
public string weaponName;//武器の名前
public bool unlock;//武器の解放条件
public GameObject gameObject;//武器本体
public int level;//武器の強化情報
public int weaponCost;//武器強化にかかる値段に影響する1~4の4段階
public int WeaponUpgrage(int level) { //実装中の機能
int value = level * weaponCost * 100;
return (value);
}
}
그러면 이런 식으로 project에서 ScriptableObject를 만들 수 있다.
신규 작성하면 이런 느낌. 입방체에 {}가 붙어있는 것이 ScriptableObject의 특징
새롭게 작성한 오브젝트는 인스펙터상에서 여러가지 설정할 수 있다.
설정한 데이터가 무기 1개의 데이터가 된다.
어쩐지 이런 느낌으로 많이 만들면 무기 데이터를 많이 만들 수 있다.
ScriptableObject의 단점
데이터의 크기가 터무니 없이 커지면 엑셀 등으로 취급하는 것이 편리하게 된다.
많은 무기의 공격력을 정렬하거나 카테고리별로 처리하는 등.
대량의 데이터 처리에 관해서는 ScriptableObject는 사용하기 어려운 것이 아닌가?
결론
어라, 이것 보통의 Script라도 좋지 않아? 라고 사용법을 하고 있다.
사용 장소를 잘못하고 있다고 생각되지 않는, 특히 무기 데이터에 관해서는.
다만 무기 데이터 구조의 통일이라는 면에서는 WeaponData를 만드는 의미가 있을 것 같았다.
참고문헌
공식 참조
htps : // / cs. 글쎄, ty3d. 이 m / 그럼 / 540 / 마누아 l / c ぁ s - Sc 리 p b b 오 b b ct. HTML
알기 쉬운 입문 기사
htps : // 이 m/4_미오_11/있어 ms/아 7d8967b853세 f4385cd
공식 3가지 사용법
htps : // 우니 ty. 코 m / 자 / 호 w - 및 / r 치 테 ct - 메코 - sc p b
Reference
이 문제에 관하여(ScriptableObject 사용법 사용법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/flyaway2525/items/202b2570fae1a3eebb30
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(menuName = "MyScriptable/Create WeaponData")]
//project上でWeaponDataを新規作成できるようにする
public class WeaponData : ScriptableObject {
public string weaponName;//武器の名前
public bool unlock;//武器の解放条件
public GameObject gameObject;//武器本体
public int level;//武器の強化情報
public int weaponCost;//武器強化にかかる値段に影響する1~4の4段階
public int WeaponUpgrage(int level) { //実装中の機能
int value = level * weaponCost * 100;
return (value);
}
}
데이터의 크기가 터무니 없이 커지면 엑셀 등으로 취급하는 것이 편리하게 된다.
많은 무기의 공격력을 정렬하거나 카테고리별로 처리하는 등.
대량의 데이터 처리에 관해서는 ScriptableObject는 사용하기 어려운 것이 아닌가?
결론
어라, 이것 보통의 Script라도 좋지 않아? 라고 사용법을 하고 있다.
사용 장소를 잘못하고 있다고 생각되지 않는, 특히 무기 데이터에 관해서는.
다만 무기 데이터 구조의 통일이라는 면에서는 WeaponData를 만드는 의미가 있을 것 같았다.
참고문헌
공식 참조
htps : // / cs. 글쎄, ty3d. 이 m / 그럼 / 540 / 마누아 l / c ぁ s - Sc 리 p b b 오 b b ct. HTML
알기 쉬운 입문 기사
htps : // 이 m/4_미오_11/있어 ms/아 7d8967b853세 f4385cd
공식 3가지 사용법
htps : // 우니 ty. 코 m / 자 / 호 w - 및 / r 치 테 ct - 메코 - sc p b
Reference
이 문제에 관하여(ScriptableObject 사용법 사용법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/flyaway2525/items/202b2570fae1a3eebb30
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(ScriptableObject 사용법 사용법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/flyaway2525/items/202b2570fae1a3eebb30텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)