STDIO
Tìm kiếm gần đây

    Nội dung

    Game Xúc Xắc 3D với Unity

    15/07/2020
    16/07/2020
    Game Xúc Xắc 3D với Unity
    Làm game xúc xắc với Unity thông qua code mẫu.

    Chuẩn bị

    • Cài đặt Unity phiên bản 2019.4.1f trở lên.
    • Tải Unity package: DiceGameProject.zip

    Thành phẩm

    Hướng dẫn

    Tạo project 3D trên Unity

    Create Project

    Import Package

    Nhấn chuột phải vào Assets trong thẻ Project
    Chọn Packages đã tải về
    Chọn tất cả sau đó nhấn import
    Reload lại scene mới cập nhật

    Run project

    Sau khi import package thành công, nhấn F5 để chạy test game.

    Sau khi import package thành công

    Giải thích Scripts

    Dice.cs Scripts

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Dice : MonoBehaviour {
    
    	static Rigidbody m_Ridgidbody;
    	static Vector3 m_DiceVelocity;
    
    	// Use this for initialization
    	void Start () {
    		m_Ridgidbody = GetComponent ();
    	}
    	
    	// Update is called once per frame
    	void Update () {
    		m_DiceVelocity = m_Ridgidbody.velocity;
    
    		if (Input.GetKeyDown (KeyCode.Space) || Input.GetMouseButton(0))
    		{
    			Color color = new Color(1f, 1f, 1f);
    			DiceNumberText.setText(0);
    			DiceNumberText.setColor(color);
    
    			float dirX = Random.Range (0, 500);
    			float dirY = Random.Range (0, 500);
    			float dirZ = Random.Range (0, 500);
    
    			transform.position = new Vector3 (0, 5.5f, 3f);
    			transform.rotation = Quaternion.identity;
    
    			//m_Ridgidbody.AddForce (transform.up * 100);
    			m_Ridgidbody.AddTorque (dirX, dirY, dirZ);
    		}
    	}
    
    	public static Vector3 getDiceVelocity()
    	{
    		return m_DiceVelocity;
    	}
    }
    

    Scripts xử lý sự kiện chuột hoặc bàn phím để thiết lập lại vị trí và thêm vào một lực momen xoắn ngẫu nhiên cho xúc xắc. Đồng thời sẽ thiết lập lại màu cho việc hiển thị số điểm.

    DiceCheckSide.cs Scripts

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class DiceCheckSide : MonoBehaviour {
    
    	Vector3 m_DiceVelocity;
    
    	// Update is called once per frame
    	void FixedUpdate ()
    	{
    		m_DiceVelocity = Dice.getDiceVelocity();
    	}
    
    	void OnTriggerStay(Collider col)
    	{
    	
    		switch (col.gameObject.name) {
    		case "Side1":
    			DiceNumberText.setText(3);
    			break;
    		case "Side2":
    			DiceNumberText.setText(4);
    			break;
    		case "Side3":
    			DiceNumberText.setText(1);
    			break;
    		case "Side4":
    			DiceNumberText.setText(2);
    			break;
    		case "Side5":
    			DiceNumberText.setText(6);
    			break;
    		case "Side6":
    			DiceNumberText.setText(5);
    			break;
    		}
    		if (m_DiceVelocity == new Vector3(0f, 0f, 0f))
    		{
    			Color color = new Color(0.09f, 0.9f, 0.02f);
    			DiceNumberText.setColor(color);
    		}
    	}
    }
    

    Scripts xử lý va chạm giữa xúc xắc với nền, và trả về giá trị của xúc xắc để hiển thị điểm. Đồng thời khi xúc xắc đứng yên thì thiết lập màu mới cho số điểm hiển thị.

    DiceNumberText.cs Scripts 

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
    
    public class DiceNumberText : MonoBehaviour {
    
    	static Text m_Text;
    	static int m_DiceNumber;
    
    	// Use this for initialization
    	void Start () {
    		m_Text = GetComponent ();
    		
    	}
    	
    	// Update is called once per frame
    	void Update () {
    		m_Text.text = m_DiceNumber.ToString ();
    	}
    	public static void setText(int number)
    	{
    		m_DiceNumber = number;
    	}
    
    	public static void setColor(Color color)
    	{
    		m_Text.color = color;
    	}
    }
    

    Scripts xử lý việc hiển thị màu và giá trị điểm của xúc xắc.

    Unity Game

    STDIO Training - Đào tạo lập trình game.

    Thảo luận

    In order to comment you must be a STDIO Insider. Please sign up or log in to continue.

    Đăng nhập

    Bài viết liên quan

    Làm Quen Với Unity IDE

    Làm Quen Với Unity IDE

    Unity là một trong những game engine khá phổ biến, tích hợp sẵn một IDE rất mạnh mẽ nhưng cũng không kém phần tiện dụng cho những nhà phát triển game. Bài viết hướng dẫn ...

    Rye Nguyen

    01/08/2015

    Các Thành Phần Cơ Bản Trong Unity

    Các Thành Phần Cơ Bản Trong Unity

    Các thành phần, component cơ bản trong Unity thường được sử dụng để phát triển game với Unity.

    Unity GameUnity

    01/08/2015

    Hiện Thực Game Zero Với Unity - Phần 1 - Nhận Sự Kiện Button

    Hiện Thực Game Zero Với Unity - Phần 1 - Nhận Sự Kiện Button

    Tôi tiếp tục chuỗi bài viết giúp bạn đọc xây dựng một game đơn giản thực tế: Hướng Dẫn Hiện Thực Game Zero Với Unity. Qua chuỗi bài viết, hi vọng bạn đọc sẽ dễ dàng hơn ...

    Rye Nguyen

    09/08/2015

    Hiện Thực Game Zero Với Unity - Phần 3 - Điểm Số Và Progress Timer

    Hiện Thực Game Zero Với Unity - Phần 3 - Điểm Số Và Progress Timer

    Tiếp tục chuỗi bài viết Hướng Dẫn Hiện Thực Game Zero Với Unity, ở phần trước, tôi đã giới thiệu và hướng dẫn các bạn cách hiện thực gameplay của game Zero. Trong phần 3 ...

    Rye Nguyen

    10/08/2015

    Hiện Thực Game Zero Với Unity - Phần 2 - Hiện Thực Gameplay

    Hiện Thực Game Zero Với Unity - Phần 2 - Hiện Thực Gameplay

    Tôi tiếp tục chuỗi bài viết giúp bạn đọc xây dựng một game đơn giản thực tế: Hướng Dẫn Hiện Thực Game Zero Với Unity. Ở phần 2 tôi sẽ giới thiệu và hướng dẫn các bạn xây ...

    Rye Nguyen

    09/08/2015

    Cơ Bản Về Camera Trong Unity

    Cơ Bản Về Camera Trong Unity

    Camera là một khái niệm quen thuộc đối với mọi nền tảng phát triển game. Với các thao tác chỉnh sửa và chuyển đổi camera, chúng ta có thể tạo ra vô số hiệu ứng độc đáo và ...

    Rye Nguyen

    08/08/2015

    Hiện Thực Game Zero Với Unity - Phần 4 - Scene Và Popup

    Hiện Thực Game Zero Với Unity - Phần 4 - Scene Và Popup

    Tiếp tục chuỗi bài viết Hướng Dẫn Hiện Thực Game Zero Với Unity, trong bài viết này, tôi sẽ tập trung thiết kế hệ thống scene và popup trong game. Ngoài ra, tôi mở rộng ...

    Rye Nguyen

    10/08/2015

    Vector Trong Unity

    Vector Trong Unity

    Trong môi trường game 3D, một vị trí hay vector được biểu diễn bằng 3 con số, đại diện cho 3 chiều không gian tương ứng. Trong Unity, Lớp Vector3 được sử dụng để biểu ...

    Rye Nguyen

    08/08/2015

    Lưu Trữ Thông Tin Game Với PlayerPrefs

    Lưu Trữ Thông Tin Game Với PlayerPrefs

    Lưu điểm số, thông tin hay trạng thái game là điều quan trọng và là nhu cầu chung trong bất kì game nào. Đối với Unity, công việc này đã được hỗ trợ bằng lớp PlayerPrefs. ...

    Phạm Ngọc Phước

    12/03/2016

    Hiện Thực Game Zero Với Unity - Phần 5 - Âm Thanh Và Effect

    Hiện Thực Game Zero Với Unity - Phần 5 - Âm Thanh Và Effect

    Tiếp tục chuỗi bài viết Hướng Dẫn Hiện Thực Game Zero Với Unity, trong bài viết này, tôi sẽ hướng dẫn bạn đọc thêm các hiệu ứng âm thanh và hiệu ứng của gameplay. Đây là ...

    Rye Nguyen

    11/08/2015

    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    developer@stdio.vn

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020