Create a copy of an gameobject

11,359

Solution 1

function Update () {

    var hit : RaycastHit = new RaycastHit();
    var cameraRay : Ray  = Camera.main.ScreenPointToRay(Input.mousePosition);

    if (Physics.Raycast (cameraRay.origin,cameraRay.direction,hit, 1000)) {
        var cursorOn = true;
    }

    var mouseReleased : boolean = false;

    //BOMB DROPPING 
    if (Input.GetMouseButtonDown(0)) {

        drop = Instantiate(bomb, transform.position, Quaternion.identity);
        drop.transform.position = hit.point;

        Resize();

    }
}

function Resize() {
    if (!Input.GetMouseButtonUp(0)) {
            drop.transform.localScale += Vector3(Time.deltaTime, Time.deltaTime,
                                                 Time.deltaTime);
            timeD +=Time.deltaTime;
     }
}

And you'll want this to happen over course of many calls to Update:

function Update () {
    if(Input.GetMouseButton(0)) {
        // This means the left mouse button is currently down,
        // so we'll augment the scale            
        drop.transform.localScale += Vector3(Time.deltaTime, Time.deltaTime,
                                             Time.deltaTime);
    }
}

Solution 2

The simplest way (in c#) would be something like this:

[RequireComponent(typeof(Collider))]
public class Cloneable : MonoBehaviour {
    public Vector3 spawnPoint = Vector3.zero;

    /* create a copy of this object at the specified spawn point with no rotation */
    public void OnMouseDown () {
        Object.Instantiate(gameObject, spawnPoint, Quaternion.identity);
    }
}

(The first line just makes sure there is a collider attached to the object, it's required to detect the mouse click)

That script should work as is, but I haven't tested it yet, I'll fix it if it doesn't.

Share:
11,359
ssuppal
Author by

ssuppal

Updated on June 23, 2022

Comments

  • ssuppal
    ssuppal almost 2 years

    How do you create a copy of an object upon mouse click in Unity3D?

    Also, how could I select the object to be cloned during run-time? (mouse selection preferable).