- Home /
Object creation by mouse click
Hi folks!
I'v a function than create a sphere over a plane on the hitpoint of the mouse cursor when I press the left button of the mouse.
I want to make the object growing while the mouse button is pressend, and stop growing when I release the mouse.
I'm trying to do that with Input.GetMouseButtonUp and Down without success :(
Here is my actual code
var bomb : GameObject; var timeD : float; var drop : GameObject;
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(timeD,timeD,timeD);
timeD +=Time.deltaTime;
}
}
Tnx!!
Hi, tnx for the reply :) $$anonymous$$aybe I'm not explained exactly.
This is the list of operations I need to perform:
One $$anonymous$$ouse click holding the mouse button
The object is created on the hit point of the cursor
The object grew until I release the mouse button
Answer by flaviusxvii · Mar 21, 2011 at 03:09 PM
A few things, you'll probably want something more like:
drop.transform.localScale += Vector3(Time.deltaTime, Time.deltaTime, 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);
}
}
GetMouseButtonUp and GetMouseButtonDown only get called once.. just on the frames those events take place.
You probably want to define a 'speed' so you can adjust that var speed = .5; drop.transform.localScale += Vector3(Time.deltaTime, Time.deltaTime, Time.deltaTime) * speed;