Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

HamtronglaptrinhUNITY3D

8 năm trước 854 lượt xem 4 bình luận 8 năm trước

Cho mình hỏi hàm Instantiate () trong unity 3d là có nghĩa là gì à ?

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Accodius đã bình luận 8 năm trước

nó dùng để tạo ra một đối tượng nào đó mà bạn truyền vào ví dụ:
 

public Rigidbody rocketPrefab;
    public Transform barrelEnd;
    
    
    void Update ()
    {
        if(Input.GetButtonDown("Fire1"))
        {
            Rigidbody rocketInstance;
            rocketInstance = Instantiate(rocketPrefab, barrelEnd.position, barrelEnd.rotation) as Rigidbody;
            rocketInstance.AddForce(barrelEnd.forward * 5000);
        }
    }

mình có 1 khẩu súng và 1 cái tên barrelEnd , viên đạn rocket (không tới 1h) tên là rocketprefab như trên. Như bạn thấy, khi sử dụng Instantiate(cái prefab, vị trí nòng khẩu súng, xoay góc mấy độ đó) thì nó sẽ tạo ra 1 cái prefab. Và nếu mình muốn viên đạn bay, mình sẽ dùng "as" để cho nó thành rigidbody, gán vào đâu đó(rocketInstance) rồi dùng nó để add force để cho nó bay, mặc định Instantiate sẽ trả về cái prefab của bạn.
Chốt:
-Instantiate để tạo 1 cái prefab (hình như trong video nào đó của kteam có rồi)
-Tham số mà nó cần là Instantiate(prefab,location,rotation)
-Ứng dụng chủ yếu mà mình thấy là áp dụng vào để tạo các prefab clones và hầu hết các prefab clones bạn nên tạo như vậy.
Tất nhiên, nhớ hủy viên đạn nhá:

void Start()
    {
        Destroy (gameObject, 1.5f);
    }

và cho mình solved nữa, nếu sai sót mong mọi người cmt chỉnh sửa ạ.

Accodius đã bình luận 8 năm trước

làm được chưa bạn?

 

Câu hỏi mới nhất