'유니티'에 해당되는 글 8건

  1. 2014.04.02 유니티 안드로이드 확장 개발 - jar 파일(이클립스연동) (3)
  2. 2014.01.29 유니티 오브젝트 이미지 뒤집기(이미지 플립)
  3. 2014.01.28 유니티의 오브젝트 크기, 위치, 색 설정하기
  4. 2014.01.28 유니티 파티클 관련 속성 값 (Elipsoid Particle Emitter, Particle Animator, Particle Renderer)
  5. 2014.01.12 [함수] 유니티 함수 Vector3.Lerp에 대해서 알아보자.
  6. 2014.01.09 유니티 Vector3 를 상수 선언 하고 싶을때.
  7. 2014.01.09 [유니티3d][에셋] 유니티 필수 에셋 iTween 에 대해서 알아보자(Action!)
  8. 2014.01.06 실전 유니티 3D 입문과 완성UNITY 3D 4.2 이상

유니티 안드로이드 확장 개발 - jar 파일(이클립스연동)

|

유니티는 다양한 에셋들을 사용해서 개발의 편의성을 높이고 있습니다.

Prime31이나 각종 애드몹 관련 플러그인들도 이와 같이 개발의 편의성을 높이는 플러그인입니다. 이런 플러그인을 직접 돈주고 사면 좋겠지만.

저희 같은 가난한 개발자 및 학생들은 직접 유니티와 자바의 연동을 통해서 구현해야됩니다. 


여기서는 자바 클래스와 연동하는 방법을 간단하게 소개하겠습니다.


각각 호출할때 기본적인 함수들이 있습니다.


유니티에서는 자바 클래스를 호출할때

AndroidJavaObject.Call 로 자바 클래스의 함수를 호출할수 있습니다.


자바클래스에서 유니티를 호출할때는

UnityPlayer.UnitySendMessage 함수를 사용하여 호출합니다.


유니티로 제작된 게임을 자바 클래스를 통해 확장하는 방식은 2가지가 있는데

첫번째 방식은 자바 클래스를 별도로 제작한 후 유니티 프로젝트 폴더의 Plugins/Android 폴더에 올려서 확장하는 방식이고

두번째 방식은 유니티 내에서 이클립스로 export해주어서 확장하는 방법입니다.


jar 파일을 생성해서 관리하는것이 좀더 편한것 같으니 첫번째 방식을 사용하겠습니다.


먼저 jar 파일을 생성할 프로젝트를 이클립스에서 생성해줍니다.







패키지 이름을 com.test.androidjartest 로 지정했는데 유니티 내의 Bundle Identifier 항목과 일치해야됩니다.


Edit - Project Settings - Player 에서

안드로이드 모양의 버튼을 누르면 Bundle Identifiire 를 수정할수 있습니다. 위에서 만든 패키지 이름과 일치 시켜줍니다.


이클립스에서 프로젝트를 생성하고 난다음에는 유니티가 제공하는 jar 파일을 임포트 해주어야 유니티가 제공해주는 함수를 사용할수 있습니다.


유니티가 제공하는 jar 파일은 classes.jar 파일이며 경로는 설치된 폴더에서 Editor/Data/PlaybackEngines/androidplayer/bin 폴더에 존재합니다.






jar 파일을 추가하는 방법은 프로젝트 폴더에서 오른쪽 버튼을 누르고 properties 를 누릅니다.

그리고 JaVa Build Path 에서 Libraries 에서 Add External JARs 버튼을 누르고 해당 경로에 있는 jar 파일은 선택해주고

Order and Export 에서 불러온 jar 파일을 체크해주고 ok를 누릅니다.





이클립스에서 만들어진 MainActivity 를 위와 같이 고쳐줍니다. 소스를 모두 수정하면 이 소스를 jar 파일로 만들어 exprot 해주겠습니다.






프로젝트 폴더에서 오른쪽 버튼을 누르고 Exprot 를 클릭해줍니다. 그리고 위 처럼 Jar file을 누르고 next 버튼을 눌러주고

자신의 프로젝트에서 src 폴더만 체크 해주고 Jar File 의 이름을 설정해주고 finish 버튼을 누르면 jar 파일이 완성됩니다.





이제 유니티로 넘어오겠습니다.


유니티 내에서는 jar 파일을 인식하기 위해서는 반드시 해당 경로에 jar 파일이 존재해야됩니다. 안드로이드 같은 경우네는

Plugins/Android 폴더에 jar 파일이 존재해야됩니다.


그리고 해당 jar 파일을 실행하기 위해서는 AndoridManifest 및 res 폴더가 필요하므로 위에서 만든 

jar 파일과 res 폴더 AndroidManifest 파일들을 Android 폴더에 집어 넣어줍니다.






이제 모든 세팅이 완료 되었습니다.



이제 제대로 유니티에서 -> 자바 클래스로 자바 클래스에서 유니티로 함수가 호출되는지 보겠습니다.


빈게임 오브젝트를 만들고 AndroidManager로 이름을 변경합니다.(반드시 AndroidManager로 지어주어야 됩니다.)


그리고 AndroidManager 에 아래 스크립트를 할당해줍니다.





AndroidManager 내의 Start 함수에서 MainActivity 자바 클래스의 HelloFunction 함수를 호출(_activity,Call("HelloFunction)하고,

자바 클래스에서는(이클립스) AndroidManage 클래스의 AndroidLog 함수를 호출(UnityPlayer.UnitySendMessage("AndroidManager", "AndroidLog", "Hello!");)하는 구조입니다.



할당후 안드로이드 단말기에서 빌드를 하면 아래와 같이 로그를 출력할 것입니다.






Trackback 0 And Comment 3
  1. Hello 2014.08.04 17:17 address edit & del reply

    AndroidManager.cs 말고 AndroidManager_Test.cs 로 만들면 안되는 이유가 뭐죠?>

    • Favicon of https://hyunity3d.tistory.com BlogIcon 히아레인 2014.08.04 22:03 신고 address edit & del

      MainActivity 보시면 unitysendMessage 함수에서 해당 게임오브젝트 명을 입력해야됩니다 AndroidManager_Test 라고 입력해보세요

  2. Ku 2014.10.21 23:04 address edit & del reply

    실행하였다니 아래와 같은 오류가 발생하였습니다 ㅠㅠ 왜인지 감이 안옵니다 ㅠㅠㅠㅠㅠㅠ
    Error building Player: CommandInvokationFailure: Failed to re-package resources. See the Console for details.
    C:\Users\kyoungku\Desktop\Company\adt\sdk\build-tools\android-4.4W\aapt.exe package --auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S "res" -I "C:/Users/kyoungku/Desktop/Company/adt/sdk/platforms/android-20\android.jar" -F bin/resources.ap_

    stderr[
    res\values\styles.xml:7: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light'.
    res\values-v11\styles.xml:7: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light'.
    res\values-v14\styles.xml:8: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light.DarkActionBar'.
    ]
    stdout[
    Configurations:
    (default)
    v11
    v14
    hdpi
    mdpi
    xhdpi
    xxhdpi
    w820dp

    Files:
    drawable\app_icon.png
    Src: () res\drawable\app_icon.png
    drawable\ic_launcher.png
    Src: (hdpi) res\drawable-hdpi\ic_launcher.png
    Src: (mdpi) res\drawable-mdpi\ic_launcher.png
    Src: (xhdpi) res\drawable-xhdpi\ic_launcher.png
    Src: (xxhdpi) res\drawable-xxhdpi\ic_launcher.png
    layout\activity_main.xml
    Src: () res\layout\activity_main.xml
    menu\main.xml
    Src: () res\menu\main.xml
    values\dimens.xml
    Src: () res\values\dimens.xml
    Src: (w820dp) res\values-w820dp\dimens.xml
    values\strings.xml
    Src: () res\values\strings.xml
    values\styles.xml
    Src: () res\values\styles.xml
    Src: (v11) res\values-v11\styles.xml
    Src: (v14) res\values-v14\styles.xml
    AndroidManifest.xml
    Src: () AndroidManifest.xml

    Resource Dirs:
    Type drawable
    drawable\app_icon.png
    Src: () res\drawable\app_icon.png
    drawable\ic_launcher.png
    Src: (hdpi) res\drawable-hdpi\ic_launcher.png
    Src: (mdpi) res\drawable-mdpi\ic_launcher.png
    Src: (xhdpi) res\drawable-xhdpi\ic_launcher.png
    Src: (xxhdpi) res\drawable-xxhdpi\ic_launcher.png
    Type layout
    layout\activity_main.xml
    Src: () res\layout\activity_main.xml
    Type menu
    menu\main.xml
    Src: () res\menu\main.xml
    Type values
    values\dimens.xml
    Src: () res\values\dimens.xml
    Src: (w820dp) res\values-w820dp\dimens.xml
    values\strings.xml
    Src: () res\values\strings.xml
    values\styles.xml
    Src: () res\values\styles.xml
    Src: (v11) res\values-v11\styles.xml
    Src: (v14) res\values-v14\styles.xml
    Including resources from package: C:\Users\kyoungku\Desktop\Company\adt\sdk\platforms\android-20\android.jar
    applyFileOverlay for drawable
    applyFileOverlay for layout
    applyFileOverlay for anim
    applyFileOverlay for animator
    applyFileOverlay for interpolator
    applyFileOverlay for transition
    applyFileOverlay for xml
    applyFileOverlay for raw
    applyFileOverlay for color
    applyFileOverlay for menu
    applyFileOverlay for mipmap
    Processing image: res\drawable\app_icon.png
    Processing image: res\drawable-hdpi\ic_launcher.png
    Processing image: res\drawable-mdpi\ic_launcher.png
    Processing image: res\drawable-xhdpi\ic_launcher.png
    (processed image res\drawable-mdpi\ic_launcher.png: 82% size of source)
    Processing image: res\drawable-xxhdpi\ic_launcher.png
    (processed image res\drawable-hdpi\ic_launcher.png: 77% size of source)
    (processed image res\drawable\app_icon.png: 94% size of source)
    (processed image res\drawable-xhdpi\ic_launcher.png: 74% size of source)
    (processed image res\drawable-xxhdpi\ic_launcher.png: 72% size of source)
    (new resource id app_icon from drawable\app_icon.png #generated)
    (new resource id ic_launcher from hdpi\drawable\ic_launcher.png #generated)
    (new resource id ic_launcher from mdpi\drawable\ic_launcher.png #generated)
    (new resource id ic_launcher from xhdpi\drawable\ic_launcher.png #generated)
    (new resource id ic_launcher from xxhdpi\drawable\ic_launcher.png #generated)
    (new resource id activity_main from res\layout\activity_main.xml)
    (new resource id main from res\menu\main.xml)
    ]

유니티 오브젝트 이미지 뒤집기(이미지 플립)

|

유니티 오브젝트의 메트리얼 이미지를 뒤집어야 될때가 종종 있습니다

횡스크롤 게임에서 플레이어가 왼쪽에서 오른족으로 이동할때나 오른족에서 왼쪽으로 이동할때.

오브젝트의 이미지를 플립하는데는 두가지 방법이 있습니다.


1. 오브젝트의 스케일을 조정해서 뒤집는 방법

2. 오브젝트의 메트리얼의 타일링을 이용해서 뒤집는 방법




1. 스케일 변경 방법











2. 타일링 변경 방법











테스트 패키지 파일


flyTest.unitypackage




Trackback 0 And Comment 0

유니티의 오브젝트 크기, 위치, 색 설정하기

|


오브젝트의 크기는 localScale 속성으로 설정합니다.

오브젝트의 색상은(Red, Green, Blue, Alpha)로 설정하며, 각각 0~1 사이의 값으로 지정합니다.(메트리얼이 존재해야됩니다.)

오브젝트의 위치는 position 속성으로 설정합니다.





Transform.localScale

Vector3 localScale;
Description

The scale of the transform relative to the parent.

using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour {
    void Example() {
        transform.localScale += new Vector3(0.1F, 0, 0);
    }
}




Trackback 0 And Comment 0

유니티 파티클 관련 속성 값 (Elipsoid Particle Emitter, Particle Animator, Particle Renderer)

|

유니티의 파티클 관련 속성 값




Properties

EmitIf enabled, the emitter will emit particles.
Min Size각 입자의 최소 크기.
Max Size

각 입자의 최대 크기.

Min Energy입자의 초단위 최소 수명.
Max Energy

입자의 초단위 최대 수명.

Min Emission매초 만드는 입자의 최소 수.
Max Emission

매초 만드는 입자의 최대 수.

World Velocity

월드 기준 입자의 확산 방향 및 속도.

Local Velocity로컬 기준 입자의 확산 방향 및 속도.
Rnd Velocity

입자의 확상 방향 및 속도 랜덤 값.

Emitter Velocity ScaleThe amount of the emitter's speed that the particles inherit.
Tangent VelocityThe starting speed of particles along X, Y, and Z, across the Emitter's surface.
Angular VelocityThe angular velocity of new particles in degrees per second.
Rnd Angular VelocityA random angular velocity modifier for new particles.
Rnd RotationIf enabled, the particles will be spawned with random rotations.
Simulate In World Space이동시 궤적 표시 금지.
One ShotIf enabled, the particle numbers specified by min & max emission is spawned all at once. If disabled, the particles are generated in a long stream.
Ellipsoid

입자 생성 범위.

MinEmitterRangeDetermines an empty area in the center of the sphere - use this to make particles appear on the edge of the sphere.


Properties

Does Animate ColorIf enabled, particles cycle their color over their lifetime.
Color Animation5가지의 생상에 따라 입자의 색상이 변화됨.
World Rotation AxisAn optional world-space axis the particles rotate around. Use this to make advanced spell effects or give caustic bubbles some life.
Local Rotation AxisAn optional local-space axis the particles rotate around. Use this to make advanced spell effects or give caustic bubbles some life.
Size GrowUse this to make particles grow in size over their lifetime. As randomized forces will spread your particles out, it is often nice to make them grow in size so they don't fall apart. Use this to make smoke rise upwards, to simulate wind, etc.
Rnd ForceA random force added to particles every frame. Use this to make smoke become more alive.
ForceThe force being applied every frame to the particles, measure relative to the world.
DampingHow much particles are slowed every frame. A value of 1 gives no damping, while less makes them slow down.
AutodestructIf enabled, the GameObject attached to the Particle Animator will be destroyed when all particles disappear.



Properties

Cast ShadowsIf enabled, allows object to cast shadows.
Receive ShadowsIf enabled, allows object to receive shadows.
MaterialsReference to a list of Materials that will be displayed in the position of each individual particle.
Use Light ProbesIf enabled and baked light probes are present in the scene, an interpolated light probe.
Light Probe AnchorIf set, Renderer will use this Transform's position to find the interpolated light probe.
Camera Velocity ScaleThe amount of stretching that is applied to the Particles based on Camera movement.
Stretch ParticlesDetermines how the particles are rendered.
BillboardThe particles are rendered as if facing the camera.
StretchedThe particles are facing the direction they are moving.
SortedBillboardThe particles are sorted by depth. Use this when using a blending material.
VerticalBillboardAll particles are aligned flat along the X/Z axes.
HorizontalBillboardAll particles are aligned flat along the X/Y axes.
Length ScaleIf Stretch Particles is set to Stretched, this value determines how long the particles are in their direction of motion.
Velocity ScaleIf Stretch Particles is set to Stretched, this value determines the rate at which particles will be stretched, based on their movement speed.
UV AnimationIf either of these are set, the UV coordinates of the particles will be generated for use with a tile animated texture. See the section on Animated Textures below.
X TileNumber of frames located across the X axis.
Y TileNumber of frames located across the Y axis.
CyclesHow many times to loop the animation sequence.


Trackback 1 And Comment 0

[함수] 유니티 함수 Vector3.Lerp에 대해서 알아보자.

|

using UnityEngine;

using System.Collections;

 

public class LerpTest : MonoBehaviour {

    //시작위치 위치

    public Transform startMarker;

    public Transform endMarker;

 

    public float speed = 10.0F;

    private float startTime;

    private float journeyLength;

    void Start()

    {

        startTime = Time.time;

        journeyLength = Vector3.Distance(startMarker.position, endMarker.position);//시작과끝 위치 거리

    }

    void Update()

    {

        //두점 사이의 거리가 10일때

        float distCovered = (Time.time - startTime) * speed; //속력 v = m/s 1초에 10움직임 한프레임당 1움직인다고하면

        float fracJourney = distCovered / journeyLength;// 속력 / 길이 = m/s / m = 1/s 시간 fracJourney = 0.1f

        transform.position = Vector3.Lerp(startMarker.position, endMarker.position, fracJourney); //

    }

}


유니티 함수 Lerp에 대해서 알아봅시다.


Lerp는 두 벡터 사이에 시간에 따른 위치를 구하는 함수입니다.

만약 startMarker position 은 (-5,0,0 )이고 endMarker 은 (5,0,0) 일때

위의 fracJourney 가 0.5초 일때 정확히 0,0,0 을 반환하게 되며, 0.1초 일때는 두점 사이의 거리가 10이므로 1,0,0 값을 반환 하게 됩니다.

fracJourncey 가 1.0f 일때나 그 이상일때는 endMarker 의 위치(5,0,0)를 반환합니다.

만약 0.0f이거나 그 이하일때는 startMarker의 위치(-5,0,0)를 반환하게 됩니다.



Trackback 0 And Comment 0

유니티 Vector3 를 상수 선언 하고 싶을때.

|


유니티 상에서 상수를 취급할때는 앞에 const 키워드를 붙여서 처리할수있습니다.

하지만 Vector3 값이나 다른 값들을 상수 취급하고 싶을때가 있습니다.

그럴때는 c# 의 프로퍼티 기능을 사용해서 상수로 취급할 수 있습니다.(읽어올수만 있게 만들기)



//선언부

public Vector3 MAXSIZE { get { return new Vector3(0.9f0.9f0.9f); } }



//사용시

Vector3 size = transform.localScale;

           

            if(size.x < MAXSIZE.x)

              size.x += 0.05f;

            if (size.y < MAXSIZE.y)           

              size.y += 0.05f;

            if (size.z < MAXSIZE.z)           

              size.z += 0.05f;


//값 대입시 에러 발생

MAXSIZE.x = 10; 



이렇게 파일을 적용하면 읽어오는 기능만 정의되어 값을 대입할수 없습니다.


Trackback 0 And Comment 0

[유니티3d][에셋] 유니티 필수 에셋 iTween 에 대해서 알아보자(Action!)

|


유니티 필수 에셋 중에 하나인 아이트윈

유니티에서 물체의 움직임을 보다 쉽게 설정 할 수 있습니다.

유니티를 켜시고 에셋 스토어로 갑시다 ctrl + 9 를 누르면 Asset Store에 들어가집니다.
iTween 으로 검색하시면 아래와 같이 화면이 나오고 다운로드 버튼을 누르고 유니티 상에 import 시켜줍니다. 





파일을 여시면 sample 소스가 존재합니다. sample 소스를 보시면 iTween 이라는게 뭐구나 하고 싶게 이해 할수있으실겁니다.




간단하게 샘플 소스에 대해 알아보겠습니다.




using UnityEngine;

using System.Collections;

 

public class MoveSample : MonoBehaviour

{               

                  void Start(){

                                   iTween.MoveBy(gameObject, iTween.Hash("x", 2, "easeType", "easeInOutExpo", "loopType", "pingPong", "delay", .1));

                  }

}


moveSample 입니다.


  • MoveBy(GameObject target, Vector3 amount, float time)
  • MoveBy(GameObject target, Hashtable args)

  • moveBy를 호출하는 방법은 위와 같이 두가지 방법이 있습니다.

    첫번째는 호출 방법은 위치와 시간을 집어넣어주는 함수이고

    두번째는 호출 방법은 해쉬테이블을 집어넣는 방식입니다.


    위함수에서는

    x = 2;

    easeType = "easeInOutExpo"

    loopType = "pingPong"

    delay = .1;

    해쉬테이블의 name 에 각 값들을 집어넣은 것과 같습니다.

    해쉬테이블을 미리 선언하고 아래와 같이 집어넣을 수 도 있습니다.


    Hashtable ht = new Hashtable();
    	
    void Awake(){
    	ht.Add("x",3);
    	ht.Add("time",4);
    	ht.Add("delay",1);
    	ht.Add("onupdate","myUpdateFunction");
    	ht.Add("looptype",iTween.LoopType.pingPong);
    }
    
    void Start(){
    	iTween.MoveTo(gameObject,ht);
    }



    함수의 종류는 아래와 같습니다.


    MoveBy BACK TO TOP

    Adds the supplied coordinates to a GameObject's position.

    • MoveBy(GameObject target, Vector3 amount, float time)
    • MoveBy(GameObject target, Hashtable args)
    Property NameTypePurpose
    namestringan individual name useful for stopping iTweens by name
    amountVector3for a point in space the GameObject will animate to.
    xfloat or doublefor the individual setting of the x axis
    yfloat or doublefor the individual setting of the y axis
    zfloat or doublefor the individual setting of the z axis
    orienttopathbooleanfor whether or not the GameObject will orient to its direction of travel. False by default
    looktargetTransform or Vector3for a target the GameObject will look at
    looktimefloat or doublefor the time in seconds the object will take to look at either the "looktarget" or "orienttopath"
    axisstringrestricts rotation to the supplied axis only
    spaceSpacefor applying the transformation in either the world coordinate or local cordinate system. Defaults to local space
    timefloat or doublefor the time in seconds the animation will take to complete
    speedfloat or doublecan be used instead of time to allow animation based on speed
    delayfloat or doublefor the time in seconds the animation will wait before beginning
    easetypeEaseType or stringfor the shape of the easing curve applied to the animation
    looptypeLoopType or stringfor the type of loop to apply once the animation has completed
    onstartstringfor the name of a function to launch at the beginning of the animation
    onstarttargetGameObjectfor a reference to the GameObject that holds the "onstart" method
    onstartparamsObjectfor arguments to be sent to the "onstart" method
    onupdatestringfor the name of a function to launch on every step of the animation
    onupdatetargetGameObjectfor a reference to the GameObject that holds the "onupdate" method
    onupdateparamsObjectfor arguments to be sent to the "onupdate" method
    oncompletestringfor the name of a function to launch at the end of the animation
    oncompletetargetGameObjectfor a reference to the GameObject that holds the "oncomplete" method
    oncompleteparamsObjectfor arguments to be sent to the "oncomplete" method
    ignoretimescalebooleansetting this to true will allow the animation to continue independent of the current time which is helpful for animating menus after a game has been paused by setting Time.timeScale=0




     

    using UnityEngine;

    using System.Collections;

     

    public class RotateSample : MonoBehaviour

    {               

                      void Start(){

                                       iTween.RotateBy(gameObject, iTween.Hash("x", .25, "easeType", "easeInOutBack", "loopType", "pingPong", "delay", .4));

                      }

    }

     

     

    RotateSample 입니다.


    RotateBy BACK TO TOP

    Multiplies supplied values by 360 and rotates a GameObject by calculated amount over time.

    • RotateBy(GameObject target, Vector3 amount, float time)
    • RotateBy(GameObject target, Hashtable args)

    Property NameTypePurpose
    namestringan individual name useful for stopping iTweens by name
    amountVector3for the amount to be multiplied by 360 to rotate the GameObject.
    xfloat or doublefor the individual setting of the x axis
    yfloat or doublefor the individual setting of the y axis
    zfloat or doublefor the individual setting of the z axis
    spaceSpace or stringfor applying the transformation in either the world coordinate or local cordinate system. Defaults to local space.
    timefloat or doublefor the time in seconds the animation will take to complete
    speedfloat or doublecan be used instead of time to allow animation based on speed
    delayfloat or doublefor the time in seconds the animation will wait before beginning
    easetypeEaseType or stringfor the shape of the easing curve applied to the animation
    looptypeLoopType or stringfor the type of loop to apply once the animation has completed
    onstartstringfor the name of a function to launch at the beginning of the animation
    onstarttargetGameObjectfor a reference to the GameObject that holds the "onstart" method
    onstartparamsObjectfor arguments to be sent to the "onstart" method
    onupdatestringfor the name of a function to launch on every step of the animation
    onupdatetargetGameObjectfor a reference to the GameObject that holds the "onupdate" method
    onupdateparamsObjectfor arguments to be sent to the "onupdate" method
    oncompletestringfor the name of a function to launch at the end of the animation
    oncompletetargetGameObjectfor a reference to the GameObject that holds the "oncomplete" method
    oncompleteparamsObjectfor arguments to be sent to the "oncomplete" method
    ignoretimescalebooleansetting this to true will allow the animation to continue independent of the current time which is helpful for animating menus after a game has been paused by setting Time.timeScale=0











    보다 많은 정보는 iTwwen 홈페이지에서 찾아볼수있습니다.

    ITwen 홈페이지 :http://itween.pixelplacement.com/index.php


    관련 동영상 강좌 입니다.


    https://www.youtube.com/watch?v=qRafXt26a_E

    https://www.youtube.com/watch?v=qE5hpp4YaH4


    https://www.youtube.com/watch?v=hbSxwoWjBgQ -> 한글





    Trackback 0 And Comment 0

    실전 유니티 3D 입문과 완성UNITY 3D 4.2 이상

    |



    실전 유니티 3D 입문과 완성

    저자
    박승제 지음
    출판사
    제이펍 | 2013-10-25 출간
    카테고리
    컴퓨터/IT
    책소개
    유니티를 활용한 게임 개발 가이드. 게임 개발에 관심이 있는 초...
    가격비교 글쓴이 평점  



    유니티 관련 책 예제 위주로 되있어서 초보자들에게는 괜찮은 내용이 많은듯.



    책소개

    『실전 유니티 3D 입문과 완성』은 게임 개발에 관심이 있는 초보자들을 대상으로 유니티를 이용해서 PC 및 웹, 모바일 버전의 게임을 개발하는 과정을 기초부터 설명해주는 책이다. 장르가 다른 7개의 PC용 게임을 직접 따라하며 배울 수 있으며, 이렇게 만든 게임을 웹과 모바일 게임으로 변환하는 전 과정을 보여준다. 유니티의 사용법은 물론 개발에 필요한 지식과 다양한 테크닉, 핵심적인 알고리즘을 배울 수 있어 게임 실무를 익히는데 적합하다.

    저자소개

    저자 : 박승제 
    저자 박승제는 여주컴퓨터 학원과 고려컴퓨터 학원의 원장을 지냈으며, (주)ITMax 대표이사를 지내기도 하였다. 어셈블러와 C, C++, 델파이 등을 이용한 여러 게임과 관리 시스템을 만들었으며, 학생 상벌점 관리 안드로이드용 앱을 비롯한 다수의 모바일 앱을 제작하였다. 
    안드로이드사이드와 유니티코리아에서 ‘저녁놀’이라는 필명으로 게임 강좌를 진행하고 있다. 지은 책으로는 《UNITY3D 실전 게임 개발》, 《웹 퍼블리셔를 위한 워드프레스 입문과 완성》, 《실전 앱 프로젝트 안드로이드 게임 개발편》, 《따라하기 비주얼베이식 새내기편》, 《컴퓨터 그래픽과 음악의 세계》를 비롯한 20여 권이 있으며, 《마이크로소프트웨어》 등의 컴퓨터전문 월간지에 다양한 글을 기고하였다. 
    SK T아카데미 유니티 3D 교수. 
    그린아카데미 유니티 3D 교수.

    목차

    머리말 

    CHAPTER 01 UNITY 3D의 개요 1 
    1.1 왜 게임 엔진을 사용하는가? 2 
    1.2 UNITY 3D 소개 3 
    1.3 UNITY 3D의 특징 4 

    CHAPTER 02 컴퓨터 그래픽 13 
    2.1 컴퓨터 그래픽의 구분 14 
    2.2 3D 모델의 종류 16 
    2.3 3D 모델링 방법 17 
    2.4 서피스 모델의 종류 19 
    2.5 3D 오브젝트의 구성 요소 21 
    2.6 Light와 Camera 23 
    2.7 평면 좌표와 공간 좌표 25 

    CHAPTER 03 유니티의 인터페이스 27 
    3.1 UNITY 3D 설치 28 
    3.2 유니티의 환경 설정 35 
    3.3 유니티의 인터페이스 39 
    3.3.1 새 프로젝트 시작 39 
    3.3.2 GameObject 설치 41 
    3.3.3 툴바 42 
    3.3.4 씬 뷰 43 
    3.3.5 게임 뷰 50 
    3.3.6 하이어라키 뷰 52 
    3.3.7 프로젝트 뷰 52 
    3.3.8 인스펙터 53 

    CHAPTER 04 게임 제작의 기초(1) 55 
    4.1 유니티의 거리 단위(Unit) 56 
    4.2 컴포넌트와 속성 56 
    4.3 유니티의 좌표계 59 
    4.4 유니티의 Vector 62 
    4.5 Light 63 
    4.6 Camera 67 
    4.7 오브젝트에 색깔 넣기 68 
    4.8 오브젝트에 텍스처 넣기 70 
    4.9 오브젝트의 낙하 73 
    4.10 오브젝트의 반사 74 
    4.11 사운드 연주 76 
    4.12 충돌의 판정 77 
    4.13 오브젝트 움직이기 81 
    4.14 월드 좌표와 로컬 좌표 84 
    4.15 Key로 이동 및 회전하기 86 
    4.16 계층적인 오브젝트 89 
    4.17 사용자 키 정의 94 
    4.18 탱크 3D 모델 제어하기 104 
    4.19 유니티의 각도 시스템 109 
    4.20 프리팹 만들기 112 
    4.21 Spawn Point 활용 114 
    4.22 포탄 발사 115 
    4.23 GameObject.Find/transform.Find 117 
    4.24 Instantiate-프리팹 복제 118 
    4.25 충돌의 판정 120 
    4.26 태그 활용 125 
    4.27 파티클의 활용 128 
    4.28 카메라 이동 134 
    4.29 스카이박스 사용하기 136 
    4.30 탱크에 콜라이더 추가 138 
    4.31 적군 벙커 만들기 144 
    4.32 LookAt-목표물 바라보기 145 
    4.33 Raycast-목표물 탐색 149 
    4.34 Debug 출력 153 

    CHAPTER 05 게임 제작의 기초(2) 155 
    5.1 가위바위보 게임 156 
    5.2 Animation 만들기 159 
    5.3 GUI Text 사용하기 163 
    5.4 글꼴(Font) 추가 165 
    5.5 Button 만들기 166 
    5.6 C#에서 한글 사용하기 168 
    5.7 Visual Studio 사용하기 170 
    5.8 유니티의 GUI 174 
    5.9 난수 만들기 176 
    5.10 오브젝트의 이미지 바꾸기 177 
    5.11 GUI Skin 180 
    5.12 파티클 사용하기 184 
    5.13 슈팅 게임 만들기 186 
    5.14 Jet 화염 Particle 만들기 190 
    5.15 배경 화면 스크롤 192 
    5.16 World 좌표와 Screen 좌표 195 
    5.17 Normal Map 사용하기 199 
    5.18 Object의 크기 및 색깔 설정 200 
    5.19 폭파 불꽃 파티클 만들기 205 
    5.20 미사일 만들기 208 
    5.21 SendMessage 210 
    5.22 미사일 연속 발사 211 
    5.23 yield와 Coroutine 215 
    5.24 오브젝트 보이기/감추기 216 
    5.25 운석 만들기 220 
    5.26 전투기의 충돌 처리 221 
    5.27 전역 변수와 점수 표시 223 
    5.28 게임 오버 처리 226 
    5.29 GUI Skin 사용하기 227 
    5.30 Rich Text 230 
    5.31 Cell Animation 232 
    5.32 1×1 Plane 사용하기 240 
    5.33 길찾기(Nav Mesh Agent) 243 

    CHAPTER 06 계란받기 게임 257 
    6.1 게임의 개요 258 
    6.2 게임 제작의 학습 목표 259 
    6.3 게임의 리소스 260 
    6.4 게임의 흐름도 261 
    6.5 3D Object의 기본 설정 262 
    6.6 Game Object 만들기 264 
    6.7 스테이지 디자인 273 
    6.8 Object에 Tag 달기 277 
    6.9 배경 화면 스크롤 277 
    6.10 Game Manager 만들기 278 
    6.11 배경 음악 설정 280 
    6.12 폭탄의 이동 280 
    6.13 계란의 이동 283 
    6.14 바구니의 이동 286 
    6.15 새(Bird)의 이동 288 
    6.16 게임 초기화 292 
    6.17 게임 루프 293 
    6.18 Score 표시와 Game Over 처리 296 
    6.19 Esc 키로 게임 중지하기 298 
    6.20 PC Platform Build 298 
    6.21 Web Player Build 301 
    6.22 Android Platform으로 빌드 303 
    6.23 Android 단말기의 개발 환경 설정 307 

    CHAPTER 07 Flying Owl 311 
    7.1 게임의 개요 312 
    7.2 게임 제작의 학습 목표 313 
    7.3 게임의 리소스 314 
    7.4 게임의 흐름도 315 
    7.5 카메라와 Light 설정 316 
    7.6 Object 만들기 316 
    7.7 Object에 Collider 추가 319 
    7.8 Object에 Tag 달기 320 
    7.9 프리팹 만들기 321 
    7.10 게임 화면 디자인 321 
    7.11 배경 화면 스크롤 323 
    7.12 화면을 벗어난 나뭇가지 제거 324 
    7.13 Gift 스크립트 작성 326 
    7.14 참새의 이동 328 
    7.15 득점 및 감점 표시 330 
    7.16 올빼미의 이동 332 
    7.17 게임 초기화 334 
    7.18 게임 루프 335 
    7.19 올빼미의 점프 335 
    7.20 올빼미의 좌우 이동 336 
    7.21 카메라의 이동 338 
    7.22 Bird와 Gift 만들기 340 
    7.23 Gift의 개수 제한 342 
    7.24 충돌의 판정 343 
    7.25 득점 및 게임 오버 표시 344 
    7.26 모바일 기기의 중력가속도 센서 346 

    CHAPTER 08 클레이 사격 349 
    8.1 게임의 개요 350 
    8.2 게임 제작의 학습 목표 351 
    8.3 게임의 리소스 352 
    8.4 게임의 흐름도 353 
    8.5 3D Object의 Scale Factor 설정 353 
    8.6 Object 만들기 355 
    8.7 엽총 만들기 362 
    8.8 엽총의 회전 366 
    8.9 엽총의 애니메이션 만들기 368 
    8.10 배경 화면 스크롤 380 
    8.11 접시의 이동 380 
    8.12 Oops 표시 382 
    8.13 참새의 이동 384 
    8.14 실탄의 이동 388 
    8.15 게임 루프 389 
    8.16 게임 초기화 394 
    8.17 OnGUI 함수 작성 396 

    CHAPTER 09 Dungeon의 Alien 399 
    9.1 게임의 개요 400 
    9.2 게임 제작의 학습 목표 401 
    9.3 게임의 리소스 402 
    9.4 게임의 흐름도 403 
    9.5 3D Object의 Scale Factor 설정 404 
    9.6 Object 만들기 404 
    9.7 자동문 만들기 416 
    9.8 Stage 만들기 427 
    9.9 Laser 이동 스크립트 437 
    9.10 FireBall 이동 스크립트 438 
    9.11 Alien 이동 스크립트 441 
    9.12 Human 이동 스크립트 444 
    9.13 GUI 화면 만들기 457 

    CHAPTER 10 Temple Run 463 
    10.1 게임의 개요 464 
    10.2 게임 제작의 학습 목표 465 
    10.3 다리(Bridge) 만들기 466 
    10.4 Human 만들기 482 
    10.5 스테이지 만들기 485 
    10.6 다리 설치 스크립트 487 
    10.7 주인공 이동 스크립트 작성 494 
    10.8 GUI 설정 503 
    10.9 모바일 기기의 처리 505 
    10.10 게임의 배경 만들기 506 
    10.11 Android 플랫폼으로 변환 510 

    CHAPTER 11 Memory Test 513 
    11.1 게임의 개요 514 
    11.2 게임 제작의 학습 목표 515 
    11.3 게임의 흐름도 516 
    11.4 게임 리소스 추가 516 
    11.5 배경 화면 만들기 517 
    11.6 카드 애니메이션 524 
    11.7 Map 만들기 533 
    11.8 Game Manager 537 
    11.9 카드의 Touch 처리 544 
    11.10 카드 섞기 547 
    11.11 게임의 상태 표시 549 
    11.12 카드 판정 552 
    11.13 스테이지 클리어 555 
    11.14 Sound 처리 560 
    11.15 득점의 표시 563 
    11.16 기타 기능 추가 567 
    11.17 게임 타이틀 만들기 571 
    11.18 Scene의 등록 577 

    CHAPTER 12 운석 피하기 581 
    12.1 게임의 개요 582 
    12.2 3D 오브젝트 만들기 586 
    12.3 2D 오브젝트 만들기 612 
    12.4 우주선 움직이기 616 
    12.5 배경 화면 스크롤 620 
    12.6 레이저 발사 626 
    12.7 우주선의 무적 상태, 전투 모드와 운행 모드 633 
    12.8 적기의 이동 639 
    12.9 충돌의 판정과 처리 647 
    12.10 운석과 기뢰의 이동 651 
    12.11 운석과 기뢰 만들기 658 
    12.12 Game Manager의 활용 662 
    12.13 게임의 Stage 668 
    12.14 보너스 아이템 만들기 679 
    12.15 보너스 아이템 처리 683 
    12.16 적기의 등장 687 
    12.17 우주선의 충돌 판정과 처리 689 
    12.18 우주선의 보호막과 미니맵 표시 693 
    12.19 게임 타이틀 697 
    12.20 모바일 기기의 버튼 처리 706 

    찾아보기 714

    Trackback 0 And Comment 0
    prev | 1 | next