hello there dear fellow scripters, im totally new to unity coding and coding in general, and now i have run my head into a wall been searching here for almost 2 hours now and looking at the forums, but poeple use Java…
and i use C# what i want is, i got a flashlight, when i press F i want the flashlight to slide out of view over 1 second,
and then when you click F again i want it to slide back into view how am i to do this in C#? thanks alot in advance!!!
Your problem:
1. check keyboard input?
if (Input.GetKeyDown(KeyCode.F))
{
// do the animation
}
2. the animation of slide in/out
you need to tell us, hows its going to slide in, left/right/bottom or ?
what you can do is to Lerp or Slerp between two coordinates over time
http://unity3d.com/support/documentation/ScriptReference/30_search.html?q=lerp
or, simply open the animation window and build the animation with timeline/keyframes, then attach the animation to the flashlight and play it when needed.
UPDATE
To do the animation, or control it you could implement a state structure.
Like:
bool isFlashShownNow = false;
bool isFlashGoingToBeShown = false;
if ((Input.GetKeyDown(KeyCode.F)) && (isFlashGoingToBeShown == isFlashShownNow) )
{
// state is non-animation and we have F pressed...
isFlashGoingToBeShown = !isFlashGoingToBeShown; // this flips the bool state
}
if( isFlashGoingToBeShown != isFlashShownNow )
{
// okay, current state and wanted state is not alike, now animate
if(isFlashGoingToBeShown)
{
// if this is true, then we should animate it to be visible in short time from now...
flashPos += 1f * Time.deltaTime;
if (flashPos>100f)
{
flashPos = 100f;
isFlashShownNow = true;
}
}
else
{
// oppersite, we are going to hide it...
flashPos -= 1f * Time.deltaTime;
if (flashPos<0f)
{
flashPos = 0f;
isFlashShownNow = false;
}
}
goFlashLight.transform.position(flashPos,0,0);
}