You are on page 1of 48

Ti liu hc Unity 3D

Unity l engine mnh trong lp trnh game 3d, v m phng h thng 3d, ng
thi Unity h tr xut ra trn mi h iu hnh di ng vi cc phin bn khc
nhau. Nhm pht trin game, v o to lp trnh vin unity v ha 3d ti
3dvietpro gii thiu vi cc bn bc u tin lm quen vi Unity:

I. Ci t v s dng cc i tng trong Unity

ci t cc bn vo: http://unity3d.com/ download phin bn free

Sau khi ci dt xong cc bn m chng trnh unity v ch cc hnh sau:

Hnh:

+ Scene: l giao din thit k game unity


+ Game: l giao din hin th chng trnh game unity
Hnh:

Tng ng vi 4 phm (Q,W,E,R), trong :


+ Q c biu tng bn tay gip bn dch chuyn v tr mn hnh
+ W dng la chn cc i tng, dch chuyn theo 3 hng x (mu ),
y( xanh lam), z(xanh da tri). Bn mun i tng dch chuyn theo 3 chiu khc
nhau ch vic click vo mi tn v ko theo chiu .
+ E dng xoay cc i tng theo cc hng khc nhau

+ Phm R ng ko i tng to hn hoc nh hn so vi kch thc

V d:

Thnh
Cc bn lm quen vi cc trc ta nh hnh di:

y l ta theo 3d, nu bn mun chuyn v ta 2d theo chiu chn bn


ch vic nhn vo t Persp pha di thnh.

Giao din tip theo ca Unity l Hierarchy: dng cha cc i tng cn


lp trnh trong Unity.
Bn c th to ra i tng bng cch nhn vo Create, trn mn hnh ang
ch vo i tng Cube. Mun tm i tng ny trong mn hnh thit k
(Scene) bn ch cn nhn phm F.

Giao din Inspector:

chnh l thuc tnh ca i tng unity, vi hnh trn trong bi ny 3dvietpro


ch cho cc bn bit v:
+ Position: v tr ca i tng theo 3 chiu x, y, z mc nh l 0
+ Rotation: V tr xoay ca i tng theo 3 chiu x, y, z, mc nh l 0
+ Scale: phng to thu nh i tng theo cc chiu x, y, z
Nu bn thay i ln xn cc v tr cc i tng unity bn ch cn nhn vo biu
tng bnh rng bn pha tay phi chn reset, tc l i tng s tr v trng
thi ban u.

Giao din Project:


Dng cha cc file lp trnh, m thanh, hnh nh, hiu ng, texture trong
unity.

Hng dn lm i tng di chuyn v nhy bng unity.

Hm nay mnh s hng dn cc bn mi hc unity mt bi kh n gin v c bn


trong vic hc unity, l iu khin mt tri bng di chuyn cc hng v nhy ln
bng bn phm.

Bc 1: cc bn to ra 1 qu bng v 1 mt phng qu bng c th di chuyn trn

Cc bn nhn trn th Hierarchi c Create, cc bn vo v ln lt chn


Sphere( khi cu) v Plane (mt phng).

Cc bn c th Create thm Direction light khng gian sng hn .


Cc bn ko trc ta Y qu cu nm trn mt phng.

Sau cc bn ko chiu di v chiu rng ca mt phng ra ln hn qu


bng c th di chuyn thoi mi bng cch chnh thng s Scale ca Plane trong
th Inspector.
Vy l cc bc chun b hon thnh.

Bc 2: qu bng di chuyn c, chng ta cn vit script cho n, cc bn nhn trn


th Project, chut phi vo Assets -> Create -> C# Script ( y mnh dung ngn
ng C#).
Mt Script mi s c to ra, cc bn t tn cho n. Mnh t tn l
move.Sau cc bn nhy p vo script, ca s MonoDevelop s c m ra
chng ra code trong .

Cc bn code nh sau:

Cu lnh rigidbody.Addfore gip ta y qu bng i vi 1 lc theo 1 vector


no .

Sau khi code xong cc bn n Ctrl+S lu li ri quay li ca s Unity, dng


chut ko file script (ca mnh l file move) vo i tng Sphere (qu bng)
By gi th i tng Sphere c iu khin bng script move.
Vy l ta xong phn vit lnh iu khin tri bng.

Bc 3. qu bng c th nhn lc tc dng vo th n phi c khi lng, to khi


lng cho qu bng, cc bn chn vo Add component trong th Inspector ca
Sphere. Cc bn chn Physics -> Rigidbody.
By gi cc bn c th tng gim khi lng qu bng.
By gi bn th n play v s dng phm ln xung tri phi di chuyn qu bng,
phm cch nhy :D

Bc 4: qu bng p hn th ta nn to cho n 1 mu sc hay ha tit g .

Cc bn ly nh ca 1 ha tit bt k m bn mun t cho qu bng, sau ko n vo


Assets ca th Project. Mnh chn ha tit caro.
Sau bn dng chut ko file th vo qu bng, vy l qu bng c t
mu, cc bn c th lm tng t vi Plane to mt t p hn.
Vy l cc bn hon thin vic iu khin qu bng chy theo cc hng v
nhy.

2.3. To i tng cha, i tng con (gii thch


Position, locaposition), cch ly i tng con trong cha
Trong unity vi cc cc bn c th to thnh nhm cc i tng bng cch sau:

Bc 1: Click p vo i tng cn to i tng

Lu : Hnh ng click p gip bn chn ng i tng , v thao tc ti v tr i


tng c chn.

Hnh 2.3.1. Click p vo i tng ParentCam

Bc 2: Nhp phi chut chn mt i tng, nh hnh 2.3.1 ti to i tng con l


Main Camera.

Bc 3: Thc hin lnh sau:

// Khai bo bin

protected Transform pivot;

public Transform cam;

// Thc hin trong start


cam = GetComponentInChildren<Camera> ().transform;

pivot = cam.parent;

vi dng GetComponentInChildren<Camera> ().transform; ly i


tng camera, v t i tng camera chng ta ly c i tng cha ca n l
ParentCam.

Bc 4: K ng k mu xanh t i tng cha ti i tng con

void OnDrawGizmos()

if (pivot != null && cam != null)

Gizmos.color = Color.green;

Gizmos.DrawLine(pivot.position,
cam.transform.position);

Nh hnh:
Hnh 2.3.2. V tr t im cha ti im con

Tip theo chng ta tm hiu v Position, LocalPosition, cc bn vi i tng


ParentCam trn th cu lnh transform.Position th hin v tr ca i tng trong
ton b khng gian 3D
V d:

// thc hin di chuyn i tng ti ta (0, 0, 0)


transform.position = Vector3(0, 0, 0);

Vi LocalPosition c iu c bit, l chng ta dng xc nh v tr ca i tng


trong khng gian cha ca i tng.

V d trong i tng Camera hnh 2.3.2 th:

Hnh 2.3.3. V tr ca Camera trong i tng cha ParentCam

Nh vy chng ta hiu c v tr ca i tng cha v con, by gi cc bn th lm


mt bi tp ngc li nh sau:

Bi 2.3.1: T v tr cha ly tn ca i tng con, c th trong v d 2.3.1 th t v tr


ParentCam cc bn tm cch ly tn ca Main Camera hoc bt k mt i tng no
trong ParentCam
2.8. Hm x l thi gian

2.8.1. S dng timescale

Trong qu trnh x l game unity bn khng th thiu hm x l thi gian, nhm


3dvietpro gii thiu cc bn x l thi gian bng hm timeScale

Bc 1: Cc bn to mt cube c gn rigidbody, v file lnh c cc dng lnh bc 2

Bc 2: Code hin th

// Update is called once per frame

void Update () {

//Nhn nt Q thc hin timeScale

if (Input.GetKeyDown(KeyCode.Q))

if (statusBol == false)

Time.timeScale = 0.7f;

statusBol = true;

else if (statusBol == true)

{
Time.timeScale = 0.1f;

statusBol = false;

Time.fixedDeltaTime = 0.02f * Time.timeScale;

print("fixedDeltaTime:" + Time.fixedDeltaTime);

// Nhn phm Space di chuyn theo trc y

if (Input.GetKeyDown(KeyCode.Space))

transform.Translate(0,Time.deltaTime * Speed,0);

Khi bn nhn nt space khi box s di chuyn theo trc y, trong lc khi box ri xung
bn nhn phm Q, bn s thy khi box di chuyn chm dn, nh vy hm timeScale
c tc dng:

Vi Time.timeScale = 0.1f; // l thi gian thc hin ti


Vi Time.timeScale = 0f; // Thi gian s dng li
Vi Time.timeScale = 0.xxxxf; // Thi gian s chm li 2x so vi thi gian thc
Tc dng ca vic s dng timeScale gm: pause game, s dng trong hiu ng v di
chuyn

2.8.1. S dng timescale thc hin pause mt game

void PauseGame (bool val)

if (val == false)

return;

if (Time.timeScale == 0f) {

Time.timeScale = 1f;

pause = false;

return;

} else {

Time.timeScale = 0f;

pause = true;

return;

Vi hm trn chng ta thc hin p vo i tng v gi PauseGame(true) thng qua


mt nt lnh th i tng s dng li do thit lp timescale =0f, v bm nt li i
tng tip tc c di chuyn.

2.9. Lp trnh AI & h ta


Vi v d sau cc bn c th nh hng ng i ca mt i tng qua cc im
c nh du cho trc bng cch s dng thut ton AI:

Bc 1: To 1 file .js p vo i tng cn di chuyn

var spawnPoint:Transform;

//Mng bao gm cc phn t im c nh du

private var waypoint=new Array();

private var dau:float;

private var j:int=0;

var Gtext:GUIText;

private var veloc;

private var ktr:boolean;

private var t:float=0.0;

var vt: float = 5f;

function Start(){

var i=0;

//Ly tt c cc im con trong im cha

for(var child:Transform in spawnPoint){

waypoint[i]=child;

i++;
}

function Update () {

//ly v tr t im u ti cc im c nh du

dau=Vector3.Distance(transform.position,waypoint[j].position
);

var relvitePos=waypoint[j].position-transform.position;

var gtr :Vector3;

//Xoay i tng ti v tr im tm thy

var rotation=Quaternion.LookRotation(relvitePos);

transform.rotation=Quaternion.Slerp(transform.rotation,rotat
ion,Time.deltaTime*2);

//Dch chuyn i tng

transform.Translate(Vector3.forward *Time.deltaTime * vt);

//Ly v tr tip theo ca im cn dch ti

if(dau<=1){

j++;

//Kim tra xem im nh du ti im cui cng


cha th quay li im 0

if(j>=waypoint.length){

j=0;

}
}

Bc 2: To cc im c nh du

Hnh 2.9.1. To im nh v cho i tng chuyn ng

Bc 3: Sp xp t im cho i tng cn di chuyn ti

Hnh 2.9.2. nh du cc im
Bc 4: p cc im c nh du vo mng waypoint c khai bo trn

Hnh 2.9.3. p im cha cha cc im nh du vo tp lnh

Bc 5: Chy chng trnh

Th vy qua v d ny cc bn to c chng trnh AI chuyn ng cho bt k i


tng no trn mn hnh. Cc bn c th pht trin thm tng qua bi tp ny nh:
Bi 2.9. Thc hin va chm cc i tng theo lnh AI nh trn, dng li di chuyn khi
i tng va chm v to hiu ng va chm.

3. Hng dn lm chuyn ng Oto 3D


Chng trnh lm t 3D chuyn ng c ng dng nhiu trong cc game ua
xe 3D, ngoi ra lm chuyn ng t 3d trn a hnh c ng dng vo trong lnh
vc m phng nh cc bi tp li xe, kim tra cc thit b ca ng c. Trong phn
ny nhm 3DVietpro trnh by vi cc bn cc bc to mt t 3D chuyn ng.

Bc 1: Cc bn vo phn Asset ca unity tm kim t kha sau Toturial car v


download v my ca mnh v chy chng trnh:
Hnh 4.1.1. Giao din chng trnh ua xe t c import t Asset Unity

Bc 2: Cc bn tch m hnh Oto trong hnh 4.1 ra mt project ring, thc hin
tch cc bn lu vn sau:
- Vo th mc gc ca project tm n \Assets\Models\Car
- Xut hin file Materials v catamount.fbx, cc bn thc hin ko vo ca s
Project ca project mi to. Trong Materials l map ca t, cn fbx l m hnh
3D ca t.
Bc 3: Khi thc hin ko t hin th khng c mu sc, cc bn click vo cc
phn ca Oto s hin hnh nh di:

Hnh 4.1.2. Thnh phn ca t c gn map

Nu phn Material trong hnh trn khng c, th cc bn tm trong th mc Materials va Import ph hp.
Hnh 4.1.3. La chn bnh xe pha trc bn tay tri

Hnh 4.1.4. Tch bnh xe

Bc 4: Click p vo bnh xe, sau vo Game Object chn Create Empty, khi
chn xong bn s thy xut hin mt im nm trung tm bnh xe v chnh l
im Game Object va ri bn to.

Bc 5: t tn cho i tng Game Object trong Bc 4 , nh hnh 4.1.3. Chng


ta t l WheelFL_col

Bc 6: Click vo WheelFL_col trong phn Inspector chn Add Component tm


n Wheel Collider, khi bn la chn s hin th nh sau:
Hnh 4.1.6. Wheel Collider c la chn

Hnh 4.1.7. Hnh sau khi c la chn xong, vch mu xanh chnh l Wheel Collider

Bc 7: Bn thc hin tng t nh cc bc 4,5,6 vi cc bnh xe cn li

Bc 8: Vit lnh cho bnh xe chuyn ng bng cch to ra mt file C#, sau
bn ko vo chic xe.

- Chng ta khai bo dng lnh sau l Public

// Bin thc hin lm chuyn ng bnh xe


public Transform WheelFL;
public Transform WheelFR;
public Transform WheelRL;
public Transform WheelRR;

//Bin thc hin lm chuyn ng Collider


public WheelCollider WheelFL_col;
public WheelCollider WheelFR_col;
public WheelCollider WheelRL_col;
public WheelCollider WheelRR_col;

- Khai bo tc v gc quay bnh trc ca xe

public float speed =40f;


public float angle=60f;

- thc hin lm chuyn ng, nh thc t cho thy l chng ta phi dng lc y 2 bnh sau i v bnh trc
ch c nhim v quay gc lm bnh li cho xe chy theo cc hng c iu khin. Cc bn vit hm sau trong
Update:

WheelRL_col.motorTorque = speed * Input.GetAxis("Vertical");


WheelRR_col.motorTorque = speed * Input.GetAxis("Vertical");

//WheelFL_col.motorTorque = speed * Input.GetAxis("Vertical");


//WheelFR_col.motorTorque = speed * Input.GetAxis("Vertical");

- To gc quay cho bnh trc

WheelFL_col.steerAngle = angle * Input.GetAxis ("Horizontal");


WheelFR_col.steerAngle = angle * Input.GetAxis ("Horizontal");

- Trong Update cc bn vit thm hm sau quay bnh xe:

WheelRL.Rotate (speed*Input.GetAxis("Vertical"),0,0);
WheelRR.Rotate (speed* Input.GetAxis("Vertical"),0,0);
WheelFL.Rotate (speed*Input.GetAxis("Vertical"),0,0);
WheelFR.Rotate (speed * Input.GetAxis ("Vertical"), 0, 0);

V chnh xc vi tc quay chng ta c th thay bin speed bng dng lnh sau:

WheelFL_col.rpm/60*360

- bnh trc c th lm bnh li chng ta dng dng lnh sau:

WheelFL.localEulerAngles = new Vector3(WheelFL.localEulerAngles.x,


angle * Input.GetAxis("Horizontal"), WheelFL.localEulerAngles.z);

WheelFR.localEulerAngles = new Vector3(WheelFL.localEulerAngles.x,


angle * Input.GetAxis("Horizontal"), WheelFL.localEulerAngles.z);

Th l chng ta vit lnh chuyn ng cho bnh xe, by gi cc bn ch cn gn cc i tng Public cho cc
bin c khai bo v chy chng trnh:
Hnh 4.1.8. Ko cc i tng vo cc bin ca xe 3D
Bc 9: Kt qu chy

Nh vy trong phn ny nhm 3dvietpro hng dn cc bn lm xe chuyn


ng bng cch s dng Wheel Collider. Cc bn lu mt s thuc tnh sau ca
Wheel Collider:
1. motorTorque : To ng lc cho bnh xe
2. steerAngle : To gc cho bnh

ly vn tc ca xe cc bn thc hin lnh sau:

rigidbody.velocity.magnitude * 3.6f

Vn tc * thi gian (3.6f) = S km/h


4. S dng v di chuyn camera
Cc hm thng s dng:
+ LookAt: Hng camera theo v tr cn nhn
LookAt(Transform target, Vector3 worldUp = Vector3.up);
VD:
public Transform target;
void Update() {
transform.LookAt(target);
}

+ fieldOfView: iu chnh tm nhn ca Camera, thc hin iu chnh, chng ta s


dng dng lnh sau:

Camera.main.fieldOfView = <Bin kiu s>;


VD:
Camera.main.fieldOfView = <Bin kiu s>;

+ LookRotation: Dng xoay gc nhn ca camera ti mt gc nhn khc theo vng


quay c tnh ton.

VD:
public Transform target;
void Update() {
//xc nh hng cn xoay ti
Vector3 relativePos = target.position - transform.position;
// s dng hm LookRotation a ra vng cn quay
Quaternion rotation = Quaternion.LookRotation(relativePos);
// di chuyn camera theo vng quay c tnh
transform.rotation = rotation;
}

+ Slerp: di chuyn gc nhn t From ti to vi vn tc c a ra

public static Quaternion Slerp(Quaternion from, Quaternion to, float t);

VD:
public Transform from;
public Transform to;
public float speed = 0.1F;
void Update() {
transform.rotation = Quaternion.Slerp(from.rotation, to.rotation, Time.time *
speed);
}

Chng trnh trnh by:


a i tng vo unity, thc hin gn map, lp trnh i tng chuyn ng v di
chuyn camera:

5. S dng chm mn hnh


TouchCount

GetTouch(0).phase

TouchPhase
+ Began: Ngn tay chm vo mn hnh

+ Moved: Di chuyn ngn tay trn mn hnh

+ Stationary: Ngn tay chm vo mn hnh v khng thc hin di chuyn


+ Ended: Ngn tay ri khi mn hnh, chm kt thc

+ Canceled: H thng thot ch chm

VD 1:

for (var i = 0; i < Input.touchCount; ++i) {

if (Input.GetTouch(i).phase == TouchPhase.Began)

VD 2:

int nbTouches = Input.touchCount;

if(nbTouches > 0)

for (int i = 0; i < nbTouches; i++)

Touch touch = Input.GetTouch(i);

TouchPhase phase = touch.phase;

switch(phase)

case TouchPhase.Began:

print("New touch detected at position " + touch.position + " , index " +


touch.fingerId);
break;

case TouchPhase.Moved:

print("Touch index " + touch.fingerId + " has moved by " + touch.deltaPosition);

break;

case TouchPhase.Stationary:

print("Touch index " + touch.fingerId + " is stationary at position " +


touch.position);

break;

case TouchPhase.Ended:

print("Touch index " + touch.fingerId + " ended at position " + touch.position);

break;

case TouchPhase.Canceled:

print("Touch index " + touch.fingerId + " cancelled");

break;

Tnh tc ca chm

S dng detatime tnh ton v di chuyn tc ca ngn tay

float touchSpeed = touch.deltaPosition.magnitude / touch.deltaTime;

Ly v tr ca mn hnh

Vector3 position = Camera.main.ScreenToWorldPoint(touch.position);


tapCount

if (Input.touchCount > 0) {

Debug.Log("ONE TAP");

if(Input.GetTouch(0).tapCount == 2)

Debug.Log("DOUBLE TAP");

Input.acceleration

S dng lc mn hnh theo chiu nh (Chiu x, y) tng t khi chng ta s dng


Horizontal v vertical trong unity thay cho chiu x, y khi chng ta dng acceleration

Cc s dng:

VD 1:

int tiltDirection = Input.acceleration.x > 0 ? 1 : -1;

thisTranfrom.position = new Vector3( Mathf.Clamp(thisPosition.x,-


2.4f,2.4f),thisPosition.y,thisPosition.z);

vi Input.acceleration.x cc bn lc mn hnh theo chiu ngang, v Input.acceleration.y


dng lc mn hnh theo chiu dc.

6. S dng s kin cho UI


6.1. S dng p trc tip cc s kin

1. To ra ra cc i tng Button v Image nm trong canvas


2. a tp lnh vo i tng Image

3. T Component chn Event Trigger

4. Chn Add New Event Type> PointerEnter thc hin vic hover chut, hay Chm
vo i tng
Trong :

PointerEnter: Kch hot khi chng ta hover ln i tng

PointerExit: Kt thc vic hover

5. Thm s kin bng cch clicks vo du (+), b mt s kin click vo du (-)

6. Ko i tng Image c gn tp lnh vo s kin


7. Vit lnh code trn tp lnh

8. La chn No Function trong phn 6 chn phng thc ChangColor

l phng php chng ta x l trn i tng c gn tp lnh bt cc s kin,


trong phn 6.2 cc bn bit thm mt phng php mi s dng trc tip cc s
kin m khng cn thao tc bng tay.

6.2. S dng lnh p trc tip cc s kin

Trong phn ny cc bn to ra Tp EventTest gn vo i tng Image

1. Khai bo th vin UnityEngine.EventSystem, thc hin p vic k tha n lp


,IPointerEnterHandler, IPointerExitHandler
Cho tp cc bn cn bt s kin

2. Trong phn khai bo cc bn khai bo nh sau


private AudioClip audioclip;
private AudioSource audiosource;

3. Trong phn start chng ta ly i tng m thanh


Trong button_hover_sound l tn file ca m thanh nm trong th mc Resources
void Start () {
audioclip = Resources.Load<AudioClip>("button_hover_sound");
gameObject.AddComponent<AudioSource>();
audiosource = gameObject.GetComponent<AudioSource>();
}
3. Chng ta vit ra 2 s kin sau
public void OnPointerEnter(PointerEventData evendata)
{
mouseOnCount = mouseOnCount + 1;
Debug.Log(mouseOnCount);
audio.PlayOneShot(audioclip);
}
public void OnPointerExit(PointerEventData eventdata)
{
Debug.Log("exitPointer");
}

Lu OnPointerEnter v OnPointerExit cc bn phi vit chun, bin mouseOnCount dng


m s ln hover

4. Chy dng trnh, tp lnh ny cc bn gn vo i tng cn thc hin

6.3. To Skidmark cho xe car

Bc 1: To 2 bin sau
public ParticleEmitter Effect_L;
public ParticleEmitter Effect_R;
public Transform skidmark;

Vi Effect_L, Effect_R l hiu ng khi


Skidmark l i tng vch c to
C th nh hnh nh:
Bc 2: To ra phng thc BrakeSkidMark
Vi tham s truyn vo l Status

Bc 3: Trong Upadate vit Phm ngt (Space)

Bc 4: cho chy chng trnh


7. Cch bin dch ra file APK trong unity

thc hin bin dch c cc bn lm theo cc bc sau:

* Bc 1:

Download:

+ File android sdk ti y

+ File JDK ti y (Vi jdk cc bn phi chn phin bn ng vi h iu hnh ca chng


ta l 32bit hay l 64bit)

Sau khi down load xong cc bn gii nn v tr vo th mc nh hnh nh pha di:


(Nm trong Menu>edit>References)
*Bc 2: Trong giao din unity vo File>BuildSettings

Bn thn unity chng ta c th bin dch ra rt nhiu mi trng khc nhau, nhng
trong bc ny cc bn lu phn android v cc phn m ti bi mu .
* Bc 3: Cc bn chn Player Settings trong phn mu bc 2, sau khi chn xong
xut hin ca s bn pha tay phi ca cc bn nh sau:

Trong phn hnh nh ca bc 3 ny cc bn lu l phn ti nh du l phn 1, 2. Vi


phn 1 cc bn phi nhp tn cng ty hay tp th c nhn ca cc bn, v 2 cc bn phi
a kch thc nh icon cho game (Lu phi l hnh vung, thng thng ti
400x400)

Bc 4: Cc thnh phn trong ca s player setting

- Vi phn Resolution and presentation


Trong hnh ny phn 1 chng ta thc hin chn ch t ng cho php mn hnh
game ca chng ta t ng xoay hoc t ch thng ng hay nm ngang.

Mn hnh thng ng chng ta l: Portrait

Cn nm ngang chng ta l: Landscape

- Vi phn Icon

L phn biu tng cho game, cc bn c th thay i theo kch thc i vi mi


phn gii ca in thoi.

- Vi phn Splash Image

L nh c hin th khi bt u vo game ca chng ta, thng thng th vi bn unity


free khi vo game cc bn s thy xut hin nh ca Unity, cn phin bn c bn quyn
hay crack chng ta c th t nh ca chng ta ti y khi bt u m game.

- Vi phn Other setting


Cc bn ch 3 phn ti nh du, trong 1 chng ta phi t tn identifier cho game
chng ta nh ti t trn trong cc bn khng c t s ban u. Phn 2 l
phin bn game chng ta bin dch v phn 3 l thit b c h tr cho chp ARMv7 hay
x86 c th ci t c khng, lu khi chng ta chn 2 ch ny th dung lng
game ca chng ta s thay i. (Nu armv7 dung lng game s cao hn so vi x86).

- Phn Publishing setings l phn lin quan ti bn quyn, ti s hng dn cc bn


phn sau

*Bc 5: Thc hin Build trong ca s build setting.


1. Chng ta dnh cho nh pht trin

2. Dnh cho debug game

3. build ra th mc no trn my tnh

4.Thc hin build v chy lun, lu cc bn phi cm y li ti in thoi

l cc phn ti hng dn cc bn build 1 game, chc cc bn thc hin thnh cng,


mi thc mc cc bn c th comment v phn hi ti admin.

Ngun 3Dvietpro

You might also like