Unity 스크립트에서 관문 만들기
7389 단어 Unity
Unity5 Personal Edition
사용 언어: C#
텍스트 파일에서 레벨 데이터를 읽고 Unity에서 생성
불러올 텍스트 파일
stageTextData.txt#############
# #
# p #
# #########
# ##
#
##
###
####
#
#########
# 블록
p는 유저(캐릭터)
공백은 반각
스크립트 만들기
using UnityEngine;
using System.Collections;
[ExecuteInEditMode]
public class StageCreator : MonoBehaviour {
public TextAsset textAsset;
//配置するオブジェクト
public GameObject block;
public GameObject player;
public Vector3 createPos;
public Vector3 spaceScale = new Vector3(1.0f,1.0f,0f);
void Start () {
CreateStage(createPos);
createPos = Vector3.zero;
}
void CreateStage(Vector3 pos){
Vector3 originPos = pos;
string stageTextData = textAsset.text;
foreach(char c in stageTextData){
GameObject obj = null;
if(c == '#'){
obj = Instantiate(block, pos, Quaternion.identity) as GameObject;
obj.name = block.name;
pos.x += obj.transform.lossyScale.x;
}else if(c == 'p'){
obj = Instantiate(player, pos, Quaternion.identity) as GameObject;
obj.name = player.name;
pos.x += obj.transform.lossyScale.x;
}else if(c == '\n'){
pos.y -= spaceScale.y;
pos.x = originPos.x;
}else if(c == ' '){
pos.x += spaceScale.x;
}
}
}
}
생성 단계
#############
# #
# p #
# #########
# ##
#
##
###
####
#
#########
using UnityEngine;
using System.Collections;
[ExecuteInEditMode]
public class StageCreator : MonoBehaviour {
public TextAsset textAsset;
//配置するオブジェクト
public GameObject block;
public GameObject player;
public Vector3 createPos;
public Vector3 spaceScale = new Vector3(1.0f,1.0f,0f);
void Start () {
CreateStage(createPos);
createPos = Vector3.zero;
}
void CreateStage(Vector3 pos){
Vector3 originPos = pos;
string stageTextData = textAsset.text;
foreach(char c in stageTextData){
GameObject obj = null;
if(c == '#'){
obj = Instantiate(block, pos, Quaternion.identity) as GameObject;
obj.name = block.name;
pos.x += obj.transform.lossyScale.x;
}else if(c == 'p'){
obj = Instantiate(player, pos, Quaternion.identity) as GameObject;
obj.name = player.name;
pos.x += obj.transform.lossyScale.x;
}else if(c == '\n'){
pos.y -= spaceScale.y;
pos.x = originPos.x;
}else if(c == ' '){
pos.x += spaceScale.x;
}
}
}
}
생성 단계
생성 관문
5. 스크립트를 생성하지 않을 때 닫기 (클래스 이름 옆에 있는 검사 취소)
켜면 재생 모드에 들어갈 때마다 생성됩니다. 필요하지 않을 때 스크립트를 닫으십시오.
생성된 관문
Reference
이 문제에 관하여(Unity 스크립트에서 관문 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/junya/items/8ebdbc3d167909f7be65텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)