'잡다한것들전부'에 해당되는 글 207건

  1. 2013.12.16 중급 개발자가 되는 방법 5가지
  2. 2013.12.16 유니티 안드로이드 디버깅 방법
  3. 2013.12.14 PlayerPrefs 배열로 저장하기
  4. 2013.12.14 유니티 텍스트 파일 읽기
  5. 2013.12.14 유니티 텍스트 파일 읽기
  6. 2013.12.12 ngui 강좌 링크
  7. 2013.12.11 유니티 rpg 강좌
  8. 2013.12.11 메모리 문제
  9. 2013.12.11 배경 무한 스크롤링
  10. 2013.12.11 게임 개발 공부 방법

중급 개발자가 되는 방법 5가지

|

http://www.buggymind.com/512

'잡다한것들전부 > ' 카테고리의 다른 글

c 와 c++ 관련 자료  (0) 2013.12.19
오비비 테스트 apk  (0) 2013.12.18
중급 개발자가 되는 방법 5가지  (0) 2013.12.16
배경 무한 스크롤링  (0) 2013.12.11
포물선 운동 관련 소스  (0) 2013.12.10
헥사 게임 알고리즘  (0) 2013.12.03
Trackback 0 And Comment 0

유니티 안드로이드 디버깅 방법

|

cmd창에서 android sdk 폴더에 sdk/platform-tools 경로로 이동한다.

휴대폰에서 발생하는 모든 이벤트 -> adb logcat

유니티에서 발생하는 모든 이벤트 -> adb logcat -s Unity

유니티에서 발생하는 log 이벤트 -> adb logcat Unity:I Native:I *:S

'잡다한것들전부 > ' 카테고리의 다른 글

유니티 단축키  (0) 2013.12.18
2d toolkit 공식 사이트  (0) 2013.12.18
유니티 안드로이드 디버깅 방법  (0) 2013.12.16
PlayerPrefs 배열로 저장하기  (0) 2013.12.14
유니티 텍스트 파일 읽기  (0) 2013.12.14
유니티 텍스트 파일 읽기  (0) 2013.12.14
Trackback 0 And Comment 0

PlayerPrefs 배열로 저장하기

|

데이터가 int[] _data 안에 들어 있다고 가정하겠습니다. 
string _tmpStr = ""; 

for (int i = 0; i < _data.Length;i ++) { 
  _tmpStr = _tmpStr + _data[i]; 
  if (i < _data.Length) { 
      _tmpStr = _tmpStr + ","; 
  } 


PlayerPrefs.SetString("Data", _tmpStr);로 보존 합니다. 
불러 올때는 string[] _dataArr = PlayerPrefs.GetString("Data").Split(','); 하신후 
int[] _dataIn = new int[_dataArr.Length]; 
for (int i = 0; i < _dataArr.Length; i++) { 
  _dataIn[i] = System.Convert.ToInt32(_dataArr[i]); 


'잡다한것들전부 > ' 카테고리의 다른 글

2d toolkit 공식 사이트  (0) 2013.12.18
유니티 안드로이드 디버깅 방법  (0) 2013.12.16
PlayerPrefs 배열로 저장하기  (0) 2013.12.14
유니티 텍스트 파일 읽기  (0) 2013.12.14
유니티 텍스트 파일 읽기  (0) 2013.12.14
ngui 강좌 링크  (0) 2013.12.12
Trackback 0 And Comment 0

유니티 텍스트 파일 읽기

|


이런식으로 파일을 확장자를 빼고 불러온다음에 뒤에 .text 이런식으로 확장자를 붙이면 됨

 TextAsset textFile = Resources.Load("text/opening") as TextAsset; 

string s = "" + textFile.text;


Text Assets는 불러온 텍스트 파일을 위한 하나의 포맷입니다. 사용자가 사용자의 프로젝트 폴더에 하나의 텍스트 파일을 떨어뜨릴 때, 그것은 텍스트 에셋으로 변경될 것입니다. 지원되는 텍스트 포맷은 다음과 같습니다:

  • .txt
  • .html
  • .htm
  • .xml
  • .bytes

이런 확장자들을 지원함


오직 읽기만 지원 됨

'잡다한것들전부 > ' 카테고리의 다른 글

유니티 안드로이드 디버깅 방법  (0) 2013.12.16
PlayerPrefs 배열로 저장하기  (0) 2013.12.14
유니티 텍스트 파일 읽기  (0) 2013.12.14
유니티 텍스트 파일 읽기  (0) 2013.12.14
ngui 강좌 링크  (0) 2013.12.12
유니티 rpg 강좌  (0) 2013.12.11
Trackback 0 And Comment 0

유니티 텍스트 파일 읽기

|

using UnityEngine;

using System.Collections;

using System;

using System.IO;

 

public class CsTextManager : MonoBehaviour {

    public GUISkin skin;

    private int currentTextNumber;//현재 텍스트 번호

 

 

    string s;

        // Use this for initialization

        void Start () {

        currentTextNumber = 0;

        s = LoadTextFile("text/opening.txt");

        print(s);

        }

       

        // Update is called once per frame

        void Update () {

        if (Input.GetMouseButtonDown(0))

        {

            currentTextNumber++;

        }

        }

    string LoadTextFile(string fileName)

    {

        string t = "";

        string line = "";

        StreamReader sr = new StreamReader(Application.dataPath + "/Resources/" + fileName);

        if (sr == null)

        {

            print("Error : " + Application.dataPath + "/Resources/" + fileName);

        }

        else

        {

            line = sr.ReadLine();

            while (line != null)

            {

                t += line;

                line = sr.ReadLine();

                if (line != null)

                {

                    t += "\n";

                }

            }

            sr.Close();

            // print("Loaded " + Application.dataPath + "/Resources/db/" + fileName);

        }

        return t;

    }

 

    //gui

    void OnGUI()

    {

        //텍스트 파일에서 읽기

        GUI.skin = skin;

 

        int halfW = Screen.width / 2;

        int halfH = Screen.height / 2;

 

        int x = 40;

        int y = halfH + 40;

 

        GUI.Label(new Rect(x, y, halfW * 1, halfH * 1.2f), s);

}

}

 

'잡다한것들전부 > ' 카테고리의 다른 글

PlayerPrefs 배열로 저장하기  (0) 2013.12.14
유니티 텍스트 파일 읽기  (0) 2013.12.14
유니티 텍스트 파일 읽기  (0) 2013.12.14
ngui 강좌 링크  (0) 2013.12.12
유니티 rpg 강좌  (0) 2013.12.11
메모리 문제  (0) 2013.12.11
Trackback 0 And Comment 0

ngui 강좌 링크

|

http://www.ppomppu.co.kr/zboard/view.php?id=developer&no=7799

'잡다한것들전부 > ' 카테고리의 다른 글

유니티 텍스트 파일 읽기  (0) 2013.12.14
유니티 텍스트 파일 읽기  (0) 2013.12.14
ngui 강좌 링크  (0) 2013.12.12
유니티 rpg 강좌  (0) 2013.12.11
메모리 문제  (0) 2013.12.11
게임 개발 공부 방법  (0) 2013.12.11
Trackback 0 And Comment 0

유니티 rpg 강좌

|

https://www.youtube.com/playlist?list=PLEF925EF9F86651DD

'잡다한것들전부 > ' 카테고리의 다른 글

유니티 텍스트 파일 읽기  (0) 2013.12.14
ngui 강좌 링크  (0) 2013.12.12
유니티 rpg 강좌  (0) 2013.12.11
메모리 문제  (0) 2013.12.11
게임 개발 공부 방법  (0) 2013.12.11
2d 게임 만들때 필수이 에셋  (0) 2013.12.11
Trackback 0 And Comment 0

메모리 문제

|
출처 : http://devkorea.co.kr/bbs/board.php?bo_table=m03_qna&wr_id=32246&sca=&sfl=wr_subject||wr_content&stx=%EB%A9%94%EB%AA%A8%EB%A6%AC&sop=and&page=5&currentId=44


1. 사운드 출력의 문제

 - 동전을 먹는다던가 특정한 이펙트가 터졌을때 프레임이 끊기던 문제로 고생을 했었는데 알고 봤더니
 사운드 포맷 문제 였습니다. 잦은 이펙트 사운드는 wave로 바꾸고 스트리밍 방식말고 메모리 로드 방식으로 바꿨더니 해결 되었습니다.

2. 스크립트 문제

 보통 동전이 빙글 빙글 돈다던가 스케일 조절이 된다던가 하는걸 스크립트로 구현을 하게 되면

 개체수가 많을경우 엄청난 리소스를 필요로 하게 됩니다. 이런경우 스크립트로 처리 하지 마시고 그래픽 디자이너에게

 애니메이션으로 잡아 달라고 하시는게 프레임 향상에 도움 될겁니다.




기본적으로는

Update 류의 주기적으로 호출되는 함수에서
GameObject.Find 라던가 GetComponent가 잦으면 안됩니다.
미리 쓸거라면 항상 Awake나 Start에서 멤버변수로 만드시고...

물론 new Vector3 류의 객체할당도 마찬가지구요.
지역변수로 매번 값을 받아오는 부분을 고쳐보세요.
그리고 framePerSecond를 고칠 수 있는 api도 존재하니까 사용해서 줄이세요.
보통 러닝게임은 24나 30프레임이 적당합니다.(유니티 기본은 60이죠)

이런것들만 고쳐도 상당히 성능낭비가 감소됩니다.

'잡다한것들전부 > ' 카테고리의 다른 글

ngui 강좌 링크  (0) 2013.12.12
유니티 rpg 강좌  (0) 2013.12.11
메모리 문제  (0) 2013.12.11
게임 개발 공부 방법  (0) 2013.12.11
2d 게임 만들때 필수이 에셋  (0) 2013.12.11
유니티 2d rpg 개발  (0) 2013.12.11
Trackback 0 And Comment 0

배경 무한 스크롤링

|

#include "HelloWorldScene.h"
#include "SimpleAudioEngine.h"

using namespace cocos2d;
using namespace CocosDenshion;

CCScene* HelloWorld::scene()
{
    // 'scene' is an autorelease object
    CCScene *scene = CCScene::create();
   
    // 'layer' is an autorelease object
    HelloWorld *layer = HelloWorld::create();

    // add layer as a child to scene
    scene->addChild(layer);

    // return the scene
    return scene;
}

// on "init" you need to initialize your instance
bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !CCLayer::init() )
    {
        return false;
    }

    /////////////////////////////
    // 2. add a menu item with "X" image, which is clicked to quit the program
    //    you may modify it.

    // add a "close" icon to exit the progress. it's an autorelease object
    CCMenuItemImage *pCloseItem = CCMenuItemImage::create(
                                        "CloseNormal.png",
                                        "CloseSelected.png",
                                        this,
                                        menu_selector(HelloWorld::menuCloseCallback) );
    pCloseItem->setPosition( ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20) );

    // create menu, it's an autorelease object
    CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);
    pMenu->setPosition( CCPointZero );
    this->addChild(pMenu, 1);
   
    CCSize winS = CCDirector::sharedDirector()->getWinSize();
   
   
    sprite1 = CCSprite::create("HelloWorld.png");
    this->addChild(sprite1);
    sprite1->setPosition(ccp(0, 0));
    sprite1->setAnchorPoint(ccp(0,0));
   
    sprite2 = CCSprite::create("HelloWorld.png");
    this->addChild(sprite2);
    sprite2->setPosition(ccp(winS.width/2, 0));
    sprite2->setAnchorPoint(ccp(0,0));
   
   
   
   
    backSpeed = ccp(-2,0);
   
   
    this->schedule(schedule_selector(HelloWorld::gameLogic));
    return true;
}

void HelloWorld::gameLogic(float dt)
{
    sprite1->setPositionX(sprite1->getPositionX()+backSpeed.x);
    sprite2->setPositionX(sprite2->getPositionX()+backSpeed.x);
    if(sprite1->getPositionX() < -sprite1->getContentSize().width)
    {
        CCSprite *tmp;
        tmp = sprite1;
        sprite1 = sprite2;
        sprite2 = tmp;
        sprite2->setPosition(ccp(sprite1->getPositionX()+sprite1->getContentSize().width, 0));
    }
   
}
void HelloWorld::menuCloseCallback(CCObject* pSender)
{
    CCDirector::sharedDirector()->end();

#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
    exit(0);
#endif
}


CCAction사용하면 쉽게 할수있음

ParallaxNode 사용해도 쉽게 할수있음


'잡다한것들전부 > ' 카테고리의 다른 글

오비비 테스트 apk  (0) 2013.12.18
중급 개발자가 되는 방법 5가지  (0) 2013.12.16
배경 무한 스크롤링  (0) 2013.12.11
포물선 운동 관련 소스  (0) 2013.12.10
헥사 게임 알고리즘  (0) 2013.12.03
비쥬얼드 로직  (0) 2013.12.02
Trackback 0 And Comment 0

게임 개발 공부 방법

|
출처 : http://cafe.naver.com/xgdn

[게임 개발 공부1]자신의 실력에 맞는 책을 사서 처음 부터 끝까지 따라해본다.
아래는 제가 추천하는 책입니다.
(왕초보) : 왕초보 따라하며 게임 만들기 -박중수 지음
(초보~중수) : 유니티 게임 개발의 정석 - 이득우 지음


[게임 개발 공부2]자신이 만들고 싶은 게임과 비슷한 게임을 애셋스토어에서 다운 받고 분석해 본다
유니티를 실행하고 f9를 누르면 애셋스토어를 열 수 있습니다.
타인이 올린 게임을 다운 받고 싶으면
오른쪽 카테로리 메뉴중 Complete Projects을 선택하고
PRICE로 소팅해서 보면 Free로 된 프로젝트가 보입니다.
이중, C# Game Examples를 선택해서 다운 받고 설치하면 여러 미니게임이 나오는데요
다운 받아서 설치해보고 이리저리 수정해봅니다.
이처럼, 다른 사람이 개발한 게임을 분석하다보면 책에는 없던 기법들을 배울 수 있어서 실력이 빠르게 늘게됩니다.


[게임 개발 공부3]자신이 만들 게임에 넣을 애셋을 다운 받고 분석해 본다.
애셋스토어를 둘러보셨으면 알겠지만, 애셋스토어에는 유니티 개발에 도움을 주는 수 많은 애셋들이 존재합니다.
이는 어느 게임엔진에도 없는 유니티만의 강점으로 게임 개발 허들을 낮춰서
누구도(?) 게임을 만들 수 있도록 도와줍니다.
이게 유니티를 만든 회사의 철학이죠 ㅎㅎ

유니티로 던파나 서든을 만들기 위해선 애셋스토어에 올라온 애셋들을 활용하는 것이 좋습니다.
개발 속도가 적게는 2배 최대 20배까지도 절약할 수 있습니다.
본인이 만들기 위한 게임에 필요한 애셋이 뭐뭐가 있는지..  파악해서 배우고 활용하는게 정말로 중요합니다.

특히 GUI개발을 위해서는 NGUI나 EZGUI를 사용하는 것이 필수입니다.
(아틀라스를 사용해서 드로우콜을 줄여줘서 성능향상에...  블라블라블라..)
던파와 같은 2d게임을 만들기 위해서는 2d Toolkit사용을 추천합니다.


'잡다한것들전부 > ' 카테고리의 다른 글

유니티 rpg 강좌  (0) 2013.12.11
메모리 문제  (0) 2013.12.11
게임 개발 공부 방법  (0) 2013.12.11
2d 게임 만들때 필수이 에셋  (0) 2013.12.11
유니티 2d rpg 개발  (0) 2013.12.11
유니티 2d 게임 개발  (0) 2013.12.11
Trackback 0 And Comment 0
prev | 1 | ··· | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | next