Unity 스크립트에서 관문 만들기

7389 단어 Unity
환경:Mac OSX
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;
            }
        }
    }
}

생성 단계

  • GameObject
  • 에 스크립트 첨부
  • 배치할 대상prefab화
  • Inspector로 읽는 텍스트 데이터와 대상(prefab) 설정
  • Text Asset 텍스트 데이터 설정
  • 블록, Player 구성 객체
  • Space Scale space(공백), 줄 바꿈 시 생성되는 공간 크기(초기값: 1, 1, 0)
  • 크리에이트 포즈가 제작한 위치(제작 후 이동 가능, 초기치도 ok)
  • 4. 종료 후 재현 모드로 설정
    생성 관문
    5. 스크립트를 생성하지 않을 때 닫기 (클래스 이름 옆에 있는 검사 취소)
    켜면 재생 모드에 들어갈 때마다 생성됩니다. 필요하지 않을 때 스크립트를 닫으십시오.

    생성된 관문


    좋은 웹페이지 즐겨찾기