Field

์†Œ๊ฐœ

Field๋Š” App๊ณผ ๊ด€๋ จ๋œ ์†์„ฑ ๊ฐ’๋“ค ์ž…๋‹ˆ๋‹ค. ์ด ํ•„๋“œ๋ฅผ ํ™œ์šฉํ•ด ์ฐธ๊ฐ€ ์ค‘์ธ ์ŠคํŽ˜์ด์Šค๋‚˜ ๋งต, ํ”Œ๋ ˆ์ด์–ด ์ •๋ณด ๋“ฑ์„ ์กฐํšŒํ•˜๊ฑฐ๋‚˜, ์ €์žฅ๊ณต๊ฐ„์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”’ ์•„์ด์ฝ˜์ด ์žˆ๋Š” ํ•„๋“œ๋Š” ์ˆ˜์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ฝ๊ธฐ ์ „์šฉ ํ•„๋“œ์ž…๋‹ˆ๋‹ค.

์ด๋ฆ„์„ค๋ช…

๐Ÿ”’ spaceHashID

App์ด ์„ค์น˜๋œ ์ŠคํŽ˜์ด์Šค์˜ ํ•ด์‰ฌ๊ฐ’์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๐Ÿ”’ mapHashID

App์ด ์„ค์น˜๋œ ๋งต์˜ ํ•ด์‰ฌ๊ฐ’์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๐Ÿ”’ creatorID

App์„ ์‹คํ–‰ํ•œ ํ”Œ๋ ˆ์ด์–ด์˜ ID ๊ฐ’์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๐Ÿ”’ players

๋งต์— ์žˆ๋Š” ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐฐ์—ด๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๐Ÿ”’ playerCount

์•ฑ์ด ์„ค์น˜๋œ ๋งต์— ์žˆ๋Š” ํ”Œ๋ ˆ์ด์–ด์˜ ์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

cameraEffect

์นด๋ฉ”๋ผ ์ดํŽ™ํŠธ์˜ ์ข…๋ฅ˜๋ฅผ ์…‹ํŒ…ํ•  ๋ณ€์ˆ˜ ๊ฐ’

cameraEffectParam

์นด๋ฉ”๋ผ ์ดํŽ™ํŠธ ํšจ๊ณผ์˜ ๋ฒ”์œ„ ๊ฐ’

displayRatio

ํ™”๋ฉด์˜ ์คŒ์„ ์ปจํŠธ๋กค ํ•˜๋Š” ๊ฐ’

storage

์ŠคํŽ˜์ด์Šค ๋‚ด์˜ App ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ๊ณต๊ฐ„(์ŠคํŽ˜์ด์Šค ํ•œ์ •)

followPlayer

App์˜ ๋”ฐ๋ผ๊ฐ€๊ธฐ ๊ธฐ๋Šฅ ํ™œ์„ฑํ™” ์—ฌ๋ถ€ ๊ฐ’

showName

ํ”Œ๋ ˆ์ด์–ด ๋‹‰๋„ค์ž„ ์ˆจ๊น€ ์—ฌ๋ถ€

๐Ÿ”’ appHashID

์•ฑ์˜ HashID ๊ฐ’์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

enableFreeView

์•ฑ์ด ์„ค์น˜๋œ ๋งต์˜ ๋‘˜๋Ÿฌ๋ณด๊ธฐ ํ—ˆ์šฉ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“š API ์„ค๋ช… ๋ฐ ์˜ˆ์ œ

spaceHashID & mapHashID

App.spaceHashID: String App.mapHashID: String

์•ฑ์ด ์„ค์น˜๋œ ์ŠคํŽ˜์ด์Šค์˜ spaceHashID์™€ mapHashID๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. (์ŠคํŽ˜์ด์Šค์™€ ๋งต ์ดํ•ดํ•˜๊ธฐ)

์˜ˆ์ œ

์•ฑ์ด ์„ค์น˜๋œ ๋งต์˜ spaceHashID์™€ mapHashID ์ถœ๋ ฅํ•ด๋ณด๊ธฐ

// ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ž…์žฅํ•  ๋•Œ ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜
App.onJoinPlayer.Add(function(player){
  // ์ฑ„ํŒ…์ฐฝ์— spaceHashID์™€ mapHashID ์ถœ๋ ฅํ•ด๋ณด๊ธฐ
	App.sayToAll(`spaceHashID: ${App.spaceHashID}`); // spaceHashID: Ak42Xz
	App.sayToAll(`mapHashID: ${App.mapHashID}`) // mapHashId: 25g3RQ
})

creatorID

App.creatorID

๋ฏธ๋‹ˆ๊ฒŒ์ž„์„ ์‹คํ–‰ํ•œ ํ”Œ๋ ˆ์ด์–ด์˜ ID ๊ฐ’์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. โ›”๋งต ๋‚ด์žฅํ˜• ์•ฑ์ธ ๋…ธ๋ฉ€ ์•ฑ๊ณผ ์‚ฌ์ด๋“œ๋ฐ” ์•ฑ์—์„œ๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

๋ฏธ๋‹ˆ๊ฒŒ์ž„์„ ์‹คํ–‰ํ•œ ํ”Œ๋ ˆ์ด์–ด์˜ ๋‹‰๋„ค์ž„์„ ์ฑ„ํŒ…์ฐฝ์— ์ถœ๋ ฅํ•ด๋ณด๊ธฐ

// ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ž…์žฅํ•  ๋•Œ ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜
App.onJoinPlayer.Add(function(player){
	if(player.id == App.creatorID){
		App.sayToAll(`${player.name}๋‹˜์ด ์•ฑ์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.`)
	}
})

players

App.players: ScriptPlayer[]

๋งต์— ์žˆ๋Š” ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐฐ์—ด๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์˜ˆ์ œ

๋งต์— ์žˆ๋Š” ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด ๋‹‰๋„ค์ž„์„ ์ถœ๋ ฅํ•ด๋ณด๊ธฐ

// q ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜
// App.addOnKeyDown ์„ค๋ช…
App.addOnKeyDown(81,function(p){
	//App.players๋ฅผ ์ด์šฉํ•ด ์ฑ„ํŒ…์ฐฝ์— ์ ‘์†ํ•ด์žˆ๋Š” ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด์˜ ๋‹‰๋„ค์ž„์„ ์ถœ๋ ฅํ•˜๊ธฐ
	let players = App.players;
	for(let i in players){
		let player = players[i]
		App.sayToAll(player.name)
	}
})

playerCount

App.playerCount: Number

์•ฑ์ด ์„ค์น˜๋œ ๋งต์— ์žˆ๋Š” ํ”Œ๋ ˆ์ด์–ด์˜ ์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์˜ˆ์‹œ

๋งต์— ์žˆ๋Š” ํ”Œ๋ ˆ์ด์–ด ์ˆ˜ ์ถœ๋ ฅํ•ด๋ณด๊ธฐ

// q ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜
// App.addOnKeyDown ์„ค๋ช…
App.addOnKeyDown(81,function(p){
	// ํ˜„์žฌ ์ ‘์†์ž ์ˆ˜๋ฅผ ์ฑ„ํŒ…์ฐฝ์— ์ถœ๋ ฅ
	App.sayToAll(`์ ‘์†์ž ์ˆ˜: ${App.playerCount}`)
})

cameraEffect & cameraEffectParam1

App.cameraEffect: NONE = 0, SPOTLIGHT = 1 App.cameraEffectParam1: Number

App.cameraEffect: ์นด๋ฉ”๋ผ ์ดํŽ™ํŠธ์˜ ์ข…๋ฅ˜๋ฅผ ์…‹ํŒ…ํ•  ๋ณ€์ˆ˜ ๊ฐ’

App.cameraEffectParam1: ์นด๋ฉ”๋ผ ์ดํŽ™ํŠธ ํšจ๊ณผ์˜ ๋ฒ”์œ„ ๊ฐ’

์˜ˆ์ œ

๋น„๋„คํŒ… ํšจ๊ณผ๋ฅผ On/Off ํ•˜๋Š” ํ‚ค ํ•จ์ˆ˜ ๋งŒ๋“ค์–ด๋ณด๊ธฐ

// q ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜
// ํ•œ ๋ฒˆ ๋ˆ„๋ฅด๋ฉด ๋น„๋„คํŒ… ํšจ๊ณผ๊ฐ€ ์ผœ์ง€๊ณ , ๋‘ ๋ฒˆ ๋ˆ„๋ฅด๋ฉด ๋น„๋„คํŒ… ํšจ๊ณผ๊ฐ€ ๊บผ์ง
// App.addOnKeyDown ์„ค๋ช…
App.addOnKeyDown(81,function(p){
	if(App.cameraEffect == 0){
		App.cameraEffect = 1; // 1 = ๋น„๋„คํŒ… ํšจ๊ณผ
		App.cameraEffectParam1 = 500; // ๋น„๋„คํŒ… ํšจ๊ณผ์˜ ๋ฒ”์œ„๋ฅผ 500์œผ๋กœ ์ง€์ •
	}
	else if(App.cameraEffect == 1){
		App.cameraEffect = 0; // ๋น„๋„คํŒ… ํšจ๊ณผ ๋„๊ธฐ
	}
	App.sendUpdated(); // ์•ฑ์˜ Field๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด App.sendUpdated()๋กœ ๋ณ€๊ฒฝ๊ฐ’์„ ์ ์šฉ
})

displayRatio

App.displayRatio

ํ™”๋ฉด์˜ ์คŒ์„ ์ปจํŠธ๋กค ํ•˜๋Š” ๊ฐ’ ( ๊ธฐ๋ณธ ๊ฐ’: 1 )

์˜ˆ์ œ

ํ™”๋ฉด์˜ ์คŒ์„ ์ปจํŠธ๋กค ํ•˜๋Š” ํ‚ค ๋งŒ๋“ค์–ด๋ณด๊ธฐ

// q ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜
// ํ•œ ๋ฒˆ ๋ˆ„๋ฅด๋ฉด ํ™”๋ฉด์˜ ์คŒ ๊ฐ’์ด ์ปค์ง€๊ณ , ํ•œ ๋ฒˆ ๋” ๋ˆ„๋ฅด๋ฉด ์›๋ž˜๋Œ€๋กœ ๋Œ์•„์˜ค๋Š” ํ‚ค ํ•จ์ˆ˜ 
// App.addOnKeyDown ์„ค๋ช…
App.addOnKeyDown(81,function(p){
	if(App.displayRatio == 1){
		App.displayRatio = 5;
	}else{
		App.displayRatio = 1;
	}
	App.sendUpdated(); //* ์•ฑ์˜ Field๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด App.sendUpdated()๋กœ ๋ณ€๊ฒฝ๊ฐ’์„ ์ ์šฉ
})

storage

App.storage: String

์ŠคํŽ˜์ด์Šค ๋‚ด์˜ App ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ๊ณต๊ฐ„ ์ž…๋‹ˆ๋‹ค (์ŠคํŽ˜์ด์Šค ํ•œ์ •)

์˜ˆ์ œ

Storage ํŽ˜์ด์ง€๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”

followPlayer

App.followPlayer: Boolean

App์˜ ๋”ฐ๋ผ๊ฐ€๊ธฐ ๊ธฐ๋Šฅ ํ™œ์„ฑํ™” ์—ฌ๋ถ€ ๊ฐ’ ์ž…๋‹ˆ๋‹ค. ( ๊ธฐ๋ณธ ๊ฐ’ : false )

๋…ธ๋ฉ€ ์•ฑ, ๋ฏธ๋‹ˆ๊ฒŒ์ž„ ์•ฑ์ด ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ followPlayer ๊ฐ’์ด false๋กœ ์„ค์ •๋˜์–ด โ€˜๋”ฐ๋ผ๊ฐ€๊ธฐโ€™ ๊ธฐ๋Šฅ์ด ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ

๋”ฐ๋ผ๊ฐ€๊ธฐ ๊ธฐ๋Šฅ์„ ๋„๊ณ  ํ‚ค๋Š” ํ•จ์ˆ˜ ๋งŒ๋“ค์–ด๋ณด๊ธฐ

// q ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜
// followPlayer ๊ฐ’์„ ๋ฐ”๊พธ๋Š” ํ‚ค ํ•จ์ˆ˜
App.addOnKeyDown(81,function(p){
	if(App.followPlayer){
		App.followPlayer = false;
	}else{
		App.followPlayer = true;
	}
	App.sayToAll(`App.followPlayer: ${App.followPlayer}`)
	App.sendUpdated(); //* ์•ฑ์˜ Field๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด App.sendUpdated()๋กœ ๋ณ€๊ฒฝ๊ฐ’์„ ์ ์šฉ
})

showName

App.showName: Boolean

ํ”Œ๋ ˆ์ด์–ด ๋‹‰๋„ค์ž„ ์ˆจ๊น€ ์—ฌ๋ถ€

App.showName ์„ false๋กœ ์„ค์ •ํ•˜๋ฉด ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด์˜ ๋‹‰๋„ค์ž„์ด ์ˆจ๊น€ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ

// q ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜
// showName ๊ฐ’์„ ๋ฐ”๊พธ๋Š” ํ‚ค ํ•จ์ˆ˜
App.addOnKeyDown(81,function(p){
	if(App.showName){
		App.showName = false;
	}else{
		App.showName = true;
	}
	App.sayToAll(`App.showName: ${App.showName}`)
	App.sendUpdated(); //* ์•ฑ์˜ Field๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด App.sendUpdated()๋กœ ๋ณ€๊ฒฝ๊ฐ’์„ ์ ์šฉ
})

appHashID

App.appHashID: String

์•ฑ์˜ HashID๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์˜ˆ์ œ

์ฑ„ํŒ…์ฐฝ์—์•ฑ์˜ HashID ์ถœ๋ ฅํ•˜๊ธฐ

// ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ž…์žฅํ•  ๋•Œ ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜
App.onJoinPlayer.Add(function(player){
	App.sayToAll(`appHashID: ${App.appHashID}`); 
})

enableFreeView

App.enableFreeView

์•ฑ์ด ์„ค์น˜๋œ ๋งต์˜ ๋‘˜๋Ÿฌ๋ณด๊ธฐ ํ—ˆ์šฉ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

๋‹จ์ถ•ํ‚ค๋กœ ๋งต ๋‘˜๋Ÿฌ๋ณด๊ธฐ ํ—ˆ์šฉ ์—ฌ๋ถ€ ์„ค์ •ํ•˜๊ธฐ

// Q๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜
App.addOnKeyDown(81, function (player) {
	if (App.enableFreeView) {
		App.enableFreeView = false;
	} else {
		App.enableFreeView = true;
	}
	App.sendUpdated();
	player.sendMessage(`App.enableFreeView = ${App.enableFreeView}`, 0x00ffff);
});


๋ถ€๋ก

์ŠคํŽ˜์ด์Šค์™€ ๋งต ์ดํ•ดํ•˜๊ธฐ

Last updated