Ммм... через transform - плохой вариант, лучше через CharacterController
CharacterController cc;//Вначале в переменных
cc=this.gameObject.GetComponent<CharacterController>(); //При этом компонент должен висеть на объекте, на том же что и скрипт
void Update(){
if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow))
{
cc.SimpleMove(forward/направление/ * speed);
}
}
И так во всех условиях клавиш, в самом компоненте CharacterController есть масса настроек, для сглаживания и ограничения движения(читай мануал)
А чем тебе мешает использовать скрипт из StandartAssets?
Добавлено: Октябрь 25, 2013, 20:38:37 А для вращения используй Quaternion(тут тоже используй справку, раздел ScriptingReference)