강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

비공개 のプロフィール画像
비공개

投稿した質問数

[Unity 6] 実際に作りながら学ぶコ博士の2Dプラットフォーマーゲーム制作

03-01 プレイヤー、カメラのステージ内移動範囲設定

플렛포머 게임 3 - 1 강의 질문

解決済みの質問

作成

·

163

0

안녕하세요. 선생님의 2D 플렛포머 게임 강의 3 - 1과 관련하여 질문이 있어서 남깁니다.

StageData.cs 코드를 작성 후 Project의 + 를 클릭하면 Stage라는 버튼이 떠야되는데 밑에와 같은 문구가 뜨면서 활성화가 되지 않는 현상이 일어납니다. 이런 경우 어떻게 해결해야되는지 알 수 있을가요?

CreateAssetMenu attribute on StageData will be ignored as StageData is not derived from ScriptableObject. UnityEditor.AttributeHelper:ExtractCreateAssetMenuItems ()

C#unity

回答 1

0

비공개님의 프로필 이미지
비공개
質問者

using UnityEngine;

[CreateAssetMenu(fileName = "NewStageData", menuName = "Stage")]

//[CreateAssetMenu]

public class StageData : MonoBehaviour

{

[Header("Camera Limit")]

[SerializeField]

private float cameraLimitMinX;

[SerializeField]

private float cameraLimitMaxX;

[Header("Player Limit")]

[SerializeField]

private float playerLimitMinX;

[SerializeField]

private float playerLimitMaxX;

[Header("Map Limit")]

[SerializeField]

private float mapLimitMinY;

// 외부에서 변수 데이터에 접근하기 위한 프로퍼티 Get

public float CameraLimitMinx => cameraLimitMinX;

public float CameraLimitMaxX => cameraLimitMaxX;

public float PlayerLimitMinX => playerLimitMinX;

public float PlayerLimitMaxX => playerLimitMaxX;

public float MapLimitMinY => mapLimitMinY;

}
코드는 위와 같이 작성하였는데 코드 문제 때문에 그런건가요?

unitynote님의 프로필 이미지
unitynote
インストラクター

public class StageData : MonoBehaviour

요 부분에서 상속받는 부모 클래스를 MonoBehaviour -> ScriptableObject로 변경해야 합니다.

유니티에서 대표적으로 상속받는 MonoBehaviour, ScriptableObject 두 클래스 중

MonoBehaviour를 사용하면 게임오브젝트에 컴포넌트로 등록해서 사용할 수 있고,

ScriptableObject를 사용하면 Project View에 Asset의 형태로 저장할 수 있습니다.

비공개님의 프로필 이미지
비공개
質問者

앗... 제가 코드를 제대로 작성하지 않았군요... 자세하게 알려주셔서 정말 감사합니다!

다음부터는 세심하게 볼 수 있도록 하겠습니다!

비공개 のプロフィール画像
비공개

投稿した質問数

質問する