Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
public class PlayerMovement : MonoBehaviour
{
public float maxForwardSpeed = 2;
public float maxBackWardSpeed = 2;
public float maxRaightSpeed = 2;
public float maxLeftSpeed = 2;
public float JumpHeight = 5;
public float jumpSpeed = 0.0F;
public float JumpTime = 2;
public float speed = 0.0F;
public float maxSpeed = 2;
float count = 0;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update ()
{
//Char Walking
if( Input.GetKey(KeyCode.W))
{ transform.position += Vector3.forward * Time.deltaTime * maxForwardSpeed; }
if( Input.GetKey(KeyCode.S))
{ transform.position -= Vector3.forward * Time.deltaTime * maxBackWardSpeed; }
if( Input.GetKey(KeyCode.A))
{ transform.position -= Vector3.right * Time.deltaTime * maxLeftSpeed; }
if( Input.GetKey(KeyCode.D))
{ transform.position += Vector3.right * Time.deltaTime * maxRaightSpeed; }
//Char jumping
if (Input.GetKeyDown(KeyCode.Space))
{
jumpUp();
}
}
public IEnumerator timer()
{
yield return new WaitForSeconds(1);
}
public void jumpUp() //Going up
{
for (; count <= JumpHeight; count++)
{
transform.position += Vector3.up * Time.deltaTime;
}
goDown();
}
public void goDown() //Going down
{
timer();
for (; count >= 0; count--)
{
transform.position -= Vector3.up * Time.deltaTime;
}
}
}
using System.Collections;
public class PlayerMovement : MonoBehaviour
{
public float maxForwardSpeed = 2;
public float maxBackWardSpeed = 2;
public float maxRaightSpeed = 2;
public float maxLeftSpeed = 2;
public float JumpHeight = 5;
public float jumpSpeed = 0.0F;
public float JumpTime = 2;
public float speed = 0.0F;
public float maxSpeed = 2;
float count = 0;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update ()
{
//Char Walking
if( Input.GetKey(KeyCode.W))
{ transform.position += Vector3.forward * Time.deltaTime * maxForwardSpeed; }
if( Input.GetKey(KeyCode.S))
{ transform.position -= Vector3.forward * Time.deltaTime * maxBackWardSpeed; }
if( Input.GetKey(KeyCode.A))
{ transform.position -= Vector3.right * Time.deltaTime * maxLeftSpeed; }
if( Input.GetKey(KeyCode.D))
{ transform.position += Vector3.right * Time.deltaTime * maxRaightSpeed; }
//Char jumping
if (Input.GetKeyDown(KeyCode.Space))
{
jumpUp();
}
}
public IEnumerator timer()
{
yield return new WaitForSeconds(1);
}
public void jumpUp() //Going up
{
for (; count <= JumpHeight; count++)
{
transform.position += Vector3.up * Time.deltaTime;
}
goDown();
}
public void goDown() //Going down
{
timer();
for (; count >= 0; count--)
{
transform.position -= Vector3.up * Time.deltaTime;
}
}
}
Я тут пытался реализовать простое перемещение с WASD, и прыжки. С перемещением вроде пока справился, а вот прыжки никак не поддаются. Пытался сделать цикл, чтобы поднимал на 1 вверх заданное количество раз, и запоминал сколько раз цикл выполнился, а потом столько же раз на 1 вниз. Ну и небольшую задержку вверху хотел сделать =) Конечно, ничего из этого не получилось, но уж больно интересно, как это должно работать правильно. Подскажите, поправьте, помогите. Заранее спасибо =)