- Home /
How do I stop Smooth.LookAt, so I can move freely?
Hello I am making a Space Sim game and I've made it to where you can hit "M" and a destination selector Pops up. the player then clicks desired location then jumps to Hyper space. Everything is dandy just how I want it except one thing. After I arrive to the location the ship still snaps to the location planet so I can't move freely once I arrive. It keeps trying to look at the planet when I try to turn my ship for "free flight". Here is my code (Java). #pragma strict
var mapEnabled: boolean;
var mapName: String = "Destination";
var boxX: int;
var boxY: int;
var buttonX: int;
var buttonY: int;
var target: Transform;
var damping = 0.02f;
var smooth = true;
var isEnabled = false;
var Monova: Transform;
var Devak: Transform;
var Eridia: Transform;
var Terra: Transform;
var Qvan: Transform;
var Korital: Transform;
var PorteNis: Transform;
var Plem: Transform;
var Dansuta: Transform;
var Suteel: Transform;
function Start ()
{
mapEnabled = false;
}
function Update ()
{
if(Input.GetKeyDown("m"))
{
if(mapEnabled == true)
{
mapEnabled = false;
Screen.showCursor = false;
}
else
{
mapEnabled = true;
Screen.showCursor = true;
}
}
}
function OnGUI()
{
if(mapEnabled == true)
{
GUI.Box(Rect(boxX, boxY, 275, 275), "Destination?");
if(GUI.Button(Rect(buttonX, 25, 250, 20), "Monova"))
{
target = Monova;
}
if(GUI.Button(Rect(buttonX, 50, 250, 20), "Devak"))
{
target = Devak;
}
if(GUI.Button(Rect(buttonX, 75, 250, 20), "Eridia"))
{
target = Eridia;
}
if(GUI.Button(Rect(buttonX, 100, 250, 20), "Terra"))
{
target = Terra;
}
if(GUI.Button(Rect(buttonX, 125, 250, 20), "Q'van"))
{
target = Qvan;
}
if(GUI.Button(Rect(buttonX, 150, 250, 20), "Korital"))
{
target = Korital;
}
if(GUI.Button(Rect(buttonX, 175, 250, 20), "Porte-Nis"))
{
target = PorteNis;
}
if(GUI.Button(Rect(buttonX, 200, 250, 20), "Plem"))
{
target = Plem;
}
if(GUI.Button(Rect(buttonX, 225, 250, 20), "Dansuta"))
{
target = Dansuta;
}
if(GUI.Button(Rect(buttonX, 250, 250, 20), "Suteel"))
{
target = Suteel;
}
}
}
function LateUpdate()
{
if(target)
{
if(smooth && isEnabled == true)
{
// Look at and dampen the rotation
var rotation = Quaternion.LookRotation(target.position - transform.position);
transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * damping);
}
else
{
// Just lookat
transform.LookAt(target);
}
}
}
Your answer
Follow this Question
Related Questions
how to change orbit camera rotation when player runs into trigger box 1 Answer
Offsetting local positions 2 Answers
How do i lock the position of the camera above the player relative to the origin point? 0 Answers
Change position of camera on scene load? 1 Answer
How can i make my crosshair drag behind the camera? 0 Answers