This document is about: QUANTUM 2
SWITCH TO

에셋

Quantum 에셋은 인덱스된 데이터베이스 내에서 변하지 않는 인스턴스로 끝나는 데이터 기반 컨테이너를 정의하는 기능입니다.

ConfigAssets

ConfigAssets 에셋에는 시작 시 게임을 구성하는 데 필요한 기타 모든 구성 자산에 대한 참조가 있습니다. 초기화 자산의 구성을 유니티에서 중앙 집중화하고 Quantum에서 직렬화하는 데 사용됩니다. 또한 게임에 새로운 유형의 데이터 에셋 및/또는 인스턴스를 추가하는 프로세스를 단순화합니다.

새 사용자 지정 데이터 자산 ConfigAssets을 추가하려면 ConfigAssets.csAssetRefYourNewAsset 유형의 공용 필드를 추가하고 프로젝트를 빌드하고 사용자 지정 에셋 인스턴스를 유니티의 ConfigAssets 인스턴스의 일치하는 필드로 드래그하세요.

C#

public partial class ConfigAssets
{
  public AssetRefGameConfig GameConfig;
  public AssetRefTurnConfig StartCountdownConfig;
  public AssetRefTurnConfig PlayTurnConfig;
  public AssetRefTurnConfig CountdownTurnConfig;
}

게임 초기화에 사용되는 ConfigAssetsRuntimeConfig.User.cs에서 시리얼 라이즈 됩니다.

C#

partial class RuntimeConfig {
  public AssetRefConfigAssets ConfigAssets;
  public Boolean IsLoadedGame;

  partial void SerializeUserData(BitStream stream)
  {
    stream.Serialize(ref ConfigAssets.Id);
    stream.Serialize(ref IsLoadedGame);
  }
}

유니티 측에서 이 데이터 에셋의 인스턴스는 QuantumRunnerLocalDebug 스크립트와 연결되어 로컬 디버그 모드에서 재생할 수 있습니다.

configs

UIRoom 스크립트에는 온라인 모드에서 플레이하기 위한 에셋에 대한 참조가 포함되어 있습니다.

C#

var config = RuntimeConfigContainer != null ? RuntimeConfig.FromByteArray(RuntimeConfig.ToByteArray(RuntimeConfigContainer.Config)) : new RuntimeConfig();
config.ConfigAssets.Id = ConfigAssets.Id;

GameConfig

GameConfig 에셋은 시뮬레이션을 위한 일반적인 목적을 가진 값을 갖고 있습니다.

  • MaxStrokes: GameEnd 시스템이 플레이어가 아직 남은 스트로크가 있는지 판단하기 위해 사용합니다.
  • SpawnBallsNearHole: SpawnSystem에서 볼을 생성할지 아니면 NearHole 유형의 SpawnPoint에서 생성할지 결정하기 위해 사용합니다.
  • 최소-최대 스트라이크 각도와 힘: PlaySystem이 볼 스트라이크를 고정할 때 사용하는 최소-최댓값입니다.
  • ForceBarVelocity: 유니티에서 폴링 하여 플레이어가 조준할 때 포스 바 마킹 위치를 업데이트합니다.
  • HitHoleVelocityThreshold: 홀 콜라이더를 작동시킬 때 공이 홀에 부딪히는 것으로 간주되는 속도 크기 값입니다.
  • HoleBumpForce: HitHoleVelocityThreshold보다 높은 속도의 홀에 부딪힐 때 공에 가해지는 수직 힘입니다.
  • 홀 트리거 및 러프 필드 레이어: 홀 트리거 및 러프 필드에 대한 유니티의 물리 레이어 이름에 대한 문자열 필드입니다. 정적 콜라이더에 공이 부딪힐 때 이러한 층을 감지하기 위해 Play System에 의해 사용됩니다.

C#

public partial class GameConfig {
    public Int32 MaxStrokes;
    public Boolean SpawnBallsNearHole;
    public Int32 MinStrikeAngle;
    public Int32 MaxStrikeAngle;
    public Int32 MinStrikeForce;
    public Int32 MaxStrikeForce;
    public Int32 ForceBarVelocity;
    public Int32 HitHoleVelocityThreshold; 
    public Int32 HoleBumpForce;
    public string HoleTriggerLayer;
    public string RoughFieldLayer;
}

TurnConfig

Golf Template은 TurnConfig 에셋을 사용하여 턴의 핵심 속성을 정의합니다.

  • UsesTimer: 글로벌 변수 Ticks는 턴의 상태가 Active인 한 프레임마다 증가합니다.
  • TurnDurationInTicks: 틱으로 턴의 최대 길이
  • IsSkippable: 플레이어가 자신의 차례를 건너뛸 수 있는지 여부를 정의.

C#

public partial class TurnConfig
{
  public Boolean UsesTimer;
  public Int32 TurnDurationInTicks;
  public Boolean IsSkippable;
}

특정 설계 요건에 맞게 턴 구성을 맞춤화하기 위해 보다 구성 가능한 데이터를 추가할 수 있으며 추가해야 합니다.

BallSpec

BallSpec 에셋은 볼에 관련된 데이터를 갖고 있는 에셋입니다.

  • EndOfMovementVelocityThreshold: 공이 여전히 움직이는 것으로 간주되는 속도 크기 값입니다.
  • EndOfMovementWaitingInTicks: 공이 움직임을 멈춘 후 턴의 끝을 선언할 때까지 PlaySystem이 대기하는 틱의 양입니다.

C#

partial class BallSpec
{
  public FP EndOfMovementVelocityThreshold;
  public Int32 EndOfMovementWaitingInTicks;
}
Back to top