sychevao19975
?>

написать код на движение wasd (В Unity)

Информатика

Ответы

AkimovaI1608

using UnityEngine;

using System.Collections;

[RequireComponent(typeof(Rigidbody2D))]

public class Player2DControl : MonoBehaviour {

public enum ProjectAxis {onlyX = 0, xAndY = 1};

public ProjectAxis projectAxis = ProjectAxis.onlyX;

public float speed = 150;

public float addForce = 7;

public bool lookAtCursor;

public KeyCode leftButton = KeyCode.A;

public KeyCode rightButton = KeyCode.D;

public KeyCode upButton = KeyCode.W;

public KeyCode downButton = KeyCode.S;

public KeyCode addForceButton = KeyCode.Space;

public bool isFacingRight = true;

private Vector3 direction;

private float vertical;

private float horizontal;

private Rigidbody2D body;

private float rotationY;

private bool jump;

void Start ()  

{

 body = GetComponent<Rigidbody2D>();

 body.fixedAngle = true;

 if(projectAxis == ProjectAxis.xAndY)  

 {

  body.gravityScale = 0;

  body.drag = 10;

 }

}

void OnCollisionStay2D(Collision2D coll)  

{

 if(coll.transform.tag == "Ground")

 {

  body.drag = 10;

  jump = true;

 }

}

 

void OnCollisionExit2D(Collision2D coll)  

{

 if(coll.transform.tag == "Ground")

 {

  body.drag = 0;

  jump = false;

 }

}

 

void FixedUpdate()

{

 body.AddForce(direction * body.mass * speed);

 if(Mathf.Abs(body.velocity.x) > speed/100f)

 {

  body.velocity = new Vector2(Mathf.Sign(body.velocity.x) * speed/100f, body.velocity.y);

 }

 if(projectAxis == ProjectAxis.xAndY)

 {

  if(Mathf.Abs(body.velocity.y) > speed/100f)

  {

   body.velocity = new Vector2(body.velocity.x, Mathf.Sign(body.velocity.y) * speed/100f);

  }

 }

 else

 {

  if(Input.GetKey(addForceButton) && jump)

  {

   body.velocity = new Vector2(0, addForce);

  }

 }

}

void Flip()

{

 if(projectAxis == ProjectAxis.onlyX)

 {

  isFacingRight = !isFacingRight;

  Vector3 theScale = transform.localScale;

  theScale.x *= -1;

  transform.localScale = theScale;

 }

}

 

void Update ()  

{

 if(lookAtCursor)

 {

  Vector3 lookPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.transform.position.z));

  lookPos = lookPos - transform.position;

  float angle  = Mathf.Atan2(lookPos.y, lookPos.x) * Mathf.Rad2Deg;

  transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);

 }

 if(Input.GetKey(upButton)) vertical = 1;

 else if(Input.GetKey(downButton)) vertical = -1; else vertical = 0;

 if(Input.GetKey(leftButton)) horizontal = -1;

 else if(Input.GetKey(rightButton)) horizontal = 1; else horizontal = 0;

 if(projectAxis == ProjectAxis.onlyX)  

 {

  direction = new Vector2(horizontal, 0);  

 }

 else  

 {

  if(Input.GetKeyDown(addForceButton)) speed += addForce; else if(Input.GetKeyUp(addForceButton)) speed -= addForce;

  direction = new Vector2(horizontal, vertical);

 }

 if(horizontal > 0 && !isFacingRight) Flip(); else if(horizontal < 0 && isFacingRight) Flip();

}

ИЛИ

using UnityEngine;

using System.Collections;

public class Move : MonoBehaviour {

public GameObject player;

public int speedRotation = 3;

public int speed = 5;

public AnimationClip anima;

public int jumpSpeed = 50;

void Start () {  

 player = (GameObject)this.gameObject;  

 animation.AddClip(anima, "animCube");

 }

 void Update(){

if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow))  

 {  

 player.transform.position += player.transform.forward * speed * Time.deltaTime;  

 animation.CrossFade("animCube");

 }  

if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow))  

 {  

 player.transform.position -= player.transform.forward * speed * Time.deltaTime;  

 }  

if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow))  

 {  

 player.transform.Rotate(Vector3.down * speedRotation);  

 }  

 if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))  

 {  

 player.transform.Rotate(Vector3.up * speedRotation);  

 }  

if (Input.GetKeyDown(KeyCode.Space))  

 {  

 player.transform.position += player.transform.up * jumpSpeed * Time.deltaTime;  

 }  

}

}

Объяснение:

Liliya-buc

К ЛИЧНОСТИ относится: слух, голубые глаза, приятный голос, средний рост, авторитет, владение своим поведением к сочувствию, функциональная специализация полушарий головного мозга,цвет глаз,цвет волос, воспитанность, половая идентификация, биологический пол, леворукость

К ИНДИВИДУ относится: мышление, критичность ума, трудолюбие, вера,

честность, стресс, медлительность,плохая адаптация к темноте,

гуманность,благородство,страх,высокая чувствительность нервной системы,преобладание процесса возбуждения над торможением, выделение себя из окружающего мира,

ответственность за свои поступки, имидж человека

Объяснение:

надеюсь )

serge-lysoff

Когда после ключевых слов then или else вновь используются условные операторы, они называются вложенными. Число вложений может быть произвольно, при этом действует правило: else всегда относится к ближайшему оператору if , для которого ветка else еще не указана. Часто вложением условных операторов можно заменить использование составного.

В качестве примера рассмотрим программу для определения номера координатной четверти p, в которой находится точка с координатами (x,y). Для простоты примем, что точка не лежит на осях координат. Без использования вложений основная часть программы может иметь следующий вид:

if (x>0) and (y>0) then p:=1

else if (x<0) and (y>0) then p:=2

else if (x<0) and (y<0) then p:=3

else p:=4;

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

написать код на движение wasd (В Unity)
Ваше имя (никнейм)*
Email*
Комментарий*