Skip to main content

Making a platform rotate and loop.

Sooooooooooooooooooooooooooooooooooo.
We want to make a simple Zelda like obstacle. A platform will turn 180 degrees (flip over) every 3 seconds. A nice little obstacle to place over lava or a tank filled with sharks =3




You want to make a nice platform for your player to be flipped off of. I just made mine a cube with the dimensions (5, 0.3, 5).

Make a new java script and put this in it:




private var tCycle:float;

function Update(){
var t = Time.time;

if (tCycle-t<=1){ 
transform.Rotate(0,0,180*Time.deltaTime);
  }

if (t>tCycle){
tCycle = t+3;
if (transform.localEulerAngles.z<90) {
transform.localEulerAngles.z = 0;
} else {
transform.localEulerAngles.z = 180;
}
}
}


EXPLAINING TIME ^.^

private var tCycle is a float, which means the number will go into decimals. Read more about them here.

var t = Time.time;
Time.time is the time of the game since it has started. Read more here.

if (tCycle-t<=1)
transform.Rotate(0,0,180*Time.deltaTime);
if tCycle (which at the beginning is automatically 0) minus the time that is passed is less than or equal to one, then the platform will rotate 180 degree's per second (Time.deltaTime). The reason we have the if statement less than 1, is to give the platform to rotate a whole second to rotate.

if (t>tCycle)
tCycle = t+3;
If time passed is greater than tCycle, set the tCycle equal to time that's passed +3, this acts as kind of resetting the script.


if (transform.localEulerAngles.z<90)
transform.localEulerAngles.z = 0;
else
transform.localEulerAngles.z = 180;
If the absolute local angle of the z axis is less than 90 degrees, then set the rotation to 0. If the rotation is greater than 0, then set the angles to 180. We do this because eventually the object would start to drift and not turn perfectly. Doing this resets the rotation to a perfect 0 or 180 each time, giving our platform a perfect flip. Read more about local Euler angles here.

Comment about any questions you have or problems you ran into. Special thanks to Aldo Naletto, for helping me figure this out.

Comments

Popular posts from this blog

How To Make a Hellish Looking Sky Box

I came across this problem while constructing my scene of Hell in a little project I've been working on, and could not find a reasonable sky box on the web for what I want. Maybe I was not looking hard enough, but I ended up making nice substitute. If you think the sky box looks familiar, then your right. The Sky box I'm using is already packaged with Unity3D! To import the sky boxes Unity has made for you,  simply go to Assets>Import Package>Skyboxes.  The sky boxes will appear in your projects tab under a folder named "Standard Assets". To make this sky box, first you must find the folder containing all the sky box materials and open it up. In it will be a list of sky boxes for your disposal. To get this skybox, I decided to tweak the "StarryNight Skybox" (But the "MoonShine Skybox" looks pretty cool also!).  Select the sky box and view it under the inspector tab. Underneath the properties there will be a tint color variable allowin

How To Make A Gun Shot Sound (SFX On Unity 3D)

When it comes to audio in Unity, there are four components: Audio Clip , Audio Source , Audio Listener , and Audio Re-verb Zone . Audio Clips are the actual audio file imported into your game. Unity supports file formats: .aif, .wav, .mp3, and .ogg. When imported, you can compress them greatly, with the price of loosing some quality. You can do this by first selecting the audio clip, view it in the inspector. Under the Audio Importer component, you can switch the audio format from Native to the audio clip, to a compressed format applied by Unity. You can change how compressed the file is by dragging the bar at the bottom, then hitting apply. You can get plenty of free good SFX from a site called  freesound.org . All you have to do is create an account for free , and download all the sounds you want. I found a nice gun shot sound here . Simply download and load into your Project. Audio Source actually plays the audio clip in your scene. They are an component, so it mu

Handling Music and Sound Effects In Your Games

Initiative  While developing Treva's Adventure I had to figure out a way to handle multiple music tracks and sound effects in a clean manner or suffer horribly.  What was going to help me achieve a simple solution was taking all the different sounds and centralizing them in a single class in order to black box them.   Any other code trying to play a sound wouldn't even know the sound file's name.   All code trying to play a music track would reference a enum that defines all the track names. Defining The Class Creating The Enum When I first started defining types in my enumeration,  I was naming the types to be exactly like the file name.  For a scary sound effect I had found a file named "ghost breath".  So around my code would be scattered lines like SoundManager.Play(SoundEffectType.GhostBreath);  This was fine until I found a sound that better fit the situation it was being used in,  and decided to use "ghost breath" for a different s