1. Trang chủ
  2. » Công Nghệ Thông Tin

Game Unity Phần 8 FPT

60 370 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 60
Dung lượng 687,17 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

public class example : MonoBehaviour {private float memberVariable = 0.0F;... public class MyClass: MonoBehaviour{ private int count = 0; private void Start{ // Event public int GetCou

Trang 1

Bài 8: T ng quan v l p trình trong Unity

- L p trình Game 2D Bài gi ng 1

Gi ng viên:

1

Trang 3

N i dung

 Ngôn ng trong Unity

 JavaScript

 Syntax c a JavaScript trong game

 i u khi n GameObject v i JavaScript

Trang 4

model

male Female house

Game Engine

(UDK, Blender, XNA, Unity…)

Game

(Perfect world, Chibi, Fantasy, SwordMan…)

Trang 5

– Công c m c nh c a Unity

– UnityScript Editor

Trang 6

Ngôn ng - Biên d ch Script

• Các scripts trong "Standard Assets", "Pro Standard Assets"

ho c "Plugins" c biên d ch tr c tiên

• n các scripts trong "Standard Assets/Editor", "Pro

Standard Assets/Editor" ho c "Plugins/Editor" c biên

d ch ti p sau ó

• n các scripts trong "Editor" c biên d ch ti p

• Các scripts còn l i s c biên d ch

Trang 8

public class example : MonoBehaviour {

private float memberVariable = 0.0F;

Trang 9

public class example : MonoBe haviour {

}

//boo

class example(MonoBehaviour):

Truy c p t m t class khác trong

project:

//javascript NameFile.golobalVariable

//C#

NameClass.golobalVariable

//Boo NameClass.golobalVariable

Trang 10

Ngôn ng - Event

• Ví d : Khi click chu t trái, thì s ki n “OnMouseDown

c g i

• Bây gi ta vi t o n code:

Debug.Log (“I click mouse-left”);//Javascript

• Khi ó, s ki n c m t hành ng trong Unity g i khi

c x lý

• Các s ki n khác: OnMouseUp, OnMouseOver, Awake,

Start, Update, LastUpdate,…

• Có r t nhi u các s ki n s c gi i thi u ph n ti p theo

Trang 12

var value1: Number = 0.0;

var name = “String variable”;

var name: String = “String variable”;

Trang 13

Ngôn ng - JavaScript

• Các lo i bi n:

– Undefined , Ví d : var n1;

– Null , Ví d : var n1 = null;

– int , Ví d : var n1: int= 1;

– Number , Ví d : var n1: Number = 0.1;

– String , Ví d : var n1 = “test String”;

– Boolean , Ví d : var n1:Boolean =false;//true

– Array , Ví d : var myArray = [];

– Date , Ví d : var d = new Date(2010,2,1);

Trang 14

Ngôn ng - JavaScript

Ví d Giá tr tra l i

rounded to 5 digits

Miêu t

Math.abs(-2.3) 2.3 Giá tr tuy t i : (x < 0) ? -x : x

Math.acos(Math.SQRT1_2) 0.78540 rad = 45° Arccosine

Math.ceil(1.1) 2 Ceiling: round up to smallest integer =

Trang 16

Ngôn ng - JavaScript

• Vi t JavaScript trong Unity

– Unity có ch a các GameObjects, m i GameObject có nhi u thành ph n (componets), m i component có

nhi u thu c tính (properties)

– Chúng ta có th vi t code them/xóa các component – Chúng ta có th vi t code thay i giá tr properties

c a c a các component

– Logic:

GameObject Component Property

Trang 17

Ngôn ng - JavaScript

Trang 18

• Bây gi , ta vi t m t o n code i u khi n gameobject

Trang 19

Ngôn ng - JavaScript

• T ng t áp d ng v i các thành ph n khác nh : camera, light, rigidbody, sound, animation, guiText,…

• Ví d :

var other : GameObject;

other.camera.fieldOfView = 45;

Trang 20

// Y axis at the same speed

transform.Rotate(Vector3.up * Time.deltaTime, Space.World);

}

Trang 21

Ngôn ng - JavaScript

• Class trong JavaScript

– Khai báo b ng cách s d ng t khóa “class” – K th a: s d ng t khóa “extends”

Trang 22

Javascript

22

Trang 24

Ngôn ng – C#

 Có th d ng MS.Net C# vi t m i th trong Unity

 Ph i có kinh nghiêm l p trình h ng i t ng OOP

 C# c biên d ch nhanh h n JavaScript

 C# không gi ng JavaScript v cách biên d ch, JavaScript

th c hi n t ng b c m t còn C# thì không

 C# s d ng các l p ph c t p h n

Trang 25

Ví d : tên file “MyClass.cs

Tên class ph i khai báo nh sau:

public class MyClass: MonoBehaviour

{

}

Trang 27

Ngôn ng – C#

• Class: bi n variable

• C u trúc s d ng:

private/public/static <type> <name>[=<new type()>];

• Khi khai báo bi n, ph i khai báo lo i bi n

public int count = 0;

private bool flagShow = false;

static string myName = “Langvv”;

}

Trang 28

public class MyClass: MonoBehaviour{

private int count = 0;

private void Start(){ // Event

public int GetCount(){ // method

}

Trang 29

Ngôn ng – C#

• i u khi n GameObject c a C# gi ng nh JavaScript

• S ki n events trong C# gi ng s ki n trong JavaScript

GameObject Component Property

Trang 30

Ngôn ng – C#

• i u khi n transform c a gameobject

using UnityEngine;

using System.Collections;

public class MyClass: MonoBehaviour{

private int count = 0;

void Update(){ //event

Trang 31

C#

31

Trang 32

}

Trang 33

So sánh C# - Javascript

• Các lo i bi n variable

C#: bool, Javascript: boolean

C#: string, Javascript: String

• Khai báo bi n

// C#: the type is always stated when declaring a variable:

public int myPublicInt = 1; // a public var

int myPrivateInt = 2; // **private** access is default, if access is unspecified

public GameObject myObj; // a type is specified, but no value assigned

// Javascript - type specification is not necessary:

var myPublicInt = 1; // **public** access is default, if unspecified

private var myPrivateInt = 2; // a private var

var myObj : GameObject; // a type is specified, but no value assigned

Trang 34

So sánh C# - Javascript

• Variables with dynamic type resolution

Ch trong Javascript, các bi n m i có ki u unspecified Ch

x y ra n u b n không gán giá tr trong khi khai báo bi n

Trang 36

class MyClass : MonoBehaviour {

public int myVar = 1;

void Start() {

Debug.Log("hello world!");

}

}

Trang 37

L p Components

 Là l p c b n nh t c tích h p vào các GameObject

 L p Component bao g m các thu c tính l u tr nh ng thông tin c b n và quan tr ng nh t i v i m t GameObject nh v trí c a i t ng trong không gian 3D, xoay c a i t ng, tên, tag …v…v

37

Thu c tính Chú thích

transform Thông tin v v trí, xoay

rigidbody Gi l p kh i l ng và tr ng l ng cho GameObject

camera Truy xu t n các thu c tính c a class Camera n u GameObject

c tích h p m t camer light Truy xu t n các thu c tính c a class Light n u GameObject

Trang 38

GameObject c tích h p NetworkView

guiTexture Truy xu t n các thu c tính c a class GUITexture n u GameObject

c tích h p GUITexture

collider Truy xu t n các thu c tính c a class Collider n u GameObject

c tích h p Collider ( c dung ki m tra các va ch m )

hingeJoint Truy xu t n các thu c tính c a class HingeJoint n u GameObject

Trang 40

L p Components

40

GetComponent Tr v ki u Component c tích h p vào i t ng

GetComponentInChildren Tr v ki u Component c tích h p vào i t ng ho c con

c a i t ng

GetComponentsInChildren Gi ng GetComponentsInChildren nh ng tr v nhi u

Component GetComponents Gi ng GetComponent nh ng tr v nhi u

Component CompareTag i t ng có thu c tag nào không?

Trang 41

Truy xu t n thu c tính c a script

41

 B t u b ng m t ví d c b n, o n code sau s di chuy n

m t i t ng thông qua input và m t bi n hi u ch nh t c

using UnityEngine;

using System.Collections;

public class Move : MonoBehaviour {

public float speed = 5.0F; //t c c a i t ng

float z = Input GetAxis( "Vertical" ) * Time deltaTime * speed; // t c theo c u trúc ngang

transform.Translate(x,0,z); // di chuy n theo vector (x,0,z)

}

}

Trang 42

Truy xu t n thu c tính c a script

42

tính speed c a class Move c public ra ngoài ta có th

hi u ch nh tr c ti p b ng cách click chu t và nh p thông s ,

b n thân các script nên c xây d ng nh m t tool ti n

l i cho vi c hi u ch nh và tránh can thi p vào mã ngu n, ngoài ra còn n gi n hóa vi c s d ng script

Trang 43

Truy xu t n thu c tính c a script

43

 Trong quá trình phát tri n chúng ta s có nhu c u v vi c

hi u ch nh t c thông qua code, s d ng ph ng th c GetComponent truy xu t n thu c tính c a m t thành

ph n b t k c tích h p trong i t ng

using UnityEngine;

using System.Collections;

public class SetSpeed : MonoBehaviour {

// Use this for initialization

Trang 44

Truy xu t n thu c tính c a script

44

i t ng v i script Move, thu c tính gameObject s truy

xu t n i t ng ch a 2 script này và thông qua ph ng

th c GetComponent truy xu t n m t thành ph n b t

k c tích h p vào i t ng, c th ây là script Move

 Chú ý: T i script C# không th truy xu t n script Javascript thông qua ph ng th c GetComponent

Trang 45

g i khi script giai o n kh i t o, th ng c dùng thi t l p ho c t i d li u ban u cho các Component

Trang 46

này s c th c thi khi i t ng ch a nó bao g m m t Collider và va ch m v i m t Collider ho c Rigidbody c a m t

i t ng khác

này s c th c thi khi chu t c a ng i ch i click vào m t

i t ng có tích h p thành ph n GUIElement ho c Collider

Trang 47

Các ph ng th c

c b n

47

Trang 48

Debugging

48

 Unity cung c p l p Debug h tr l p trình viên theo dõi

và ki m soát các l i, ây chúng ta quan tâm n ph ng

Trang 49

public class SetSpeed : MonoBehaviour {

// Use this for initialization

Trang 51

public class Example : MonoBehaviour {

void Awake() { myTransform = transform;

}

void Update () { myTransform.Translate(0,0,0);

} }

Trang 52

 ti t ki m kho n th i gian ó nên s d ng thành ph n

c a GameObject thông qua bi n t nh

Trang 54

public class Example : MonoBehaviour {

private Vector3 [] positions;

}

Trang 55

using UnityEngine;

using System.Collections;

public class Example : MonoBehaviour {

public Transform target;

Trang 56

StartCoroutine( "TestDistance" );

} IEnumerable TestDistance() {

while (true) {

if ( Vector3 Distance(transform.position, target.position) > 100) {

Debug Log( "Khong lam gi" );

} yield return new WaitForSeconds (2);

} } }

Trang 57

T i u hóa mã ngu n:

57

Yield và Coroutine

sau m i l n l p do tác ng c a yield, vi c xét kho ng cách

gi a ng i ch i và k ch s c th c thi 2 giây 1 l n, ti t

ki m c nhi u chi phí và gi m nh công vi c cho h

th ng

Trang 58

Giao di n Scene,

Inspector, menu

58

Trang 59

K t lu n

 Ngôn ng trong Unity

 JavaScript

 Syntax c a JavaScript trong game

 i u khi n GameObject v i JavaScript

Trang 60

THANK YOU!

Ngày đăng: 20/04/2016, 17:48

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN