PJ/Assets/scripts/MOW.cs

82 lines
2.1 KiB
C#
Raw Normal View History

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MOW : MonoBehaviour
{
public GameObject GoTo;
private Vector2 TapPos;
public GameObject Player;
public int Speed = 10;
public Sprite PosTo;
public GameObject Screen;
public bool AllowMove;
public int MaxX;
public int MaxY;
public int MinX;
public int MinY;
private Rigidbody2D rb;
private Vector2 currentInput;
public Transform O;
public Transform I;
bool touched;
// Update is called once per frame
public void AMove()
{
if ( AllowMove)
{
TapPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
if (TapPos.y > MinY &&TapPos.y < MaxY && TapPos.x < MaxX && TapPos.x > MinX)
{
GoTo.transform.position = TapPos;
GoTo.GetComponent<SpriteRenderer>().sprite = PosTo;
}
}
}
//
private void Awake()
{
rb = GetComponent<Rigidbody2D>();
}
private void Update() //eго на Update меняешь
{
currentInput = GatherInput();
}
private void FixedUpdate()
{
ApplyVelocity(currentInput);
}
public void SetTouched (bool touch)
{
touched = touch;
}
private Vector2 GatherInput()
{
//float x = -(O.position.x - I.position.x);
//float y = -(O.position.y - I.position.y);
//if(touched)
//return new Vector2(x, y).normalized;
//else return new Vector2(0,0);
//для стрелок раскоментируешь код ниже и замени "void Move" на "void Update"
//код выше наоборот закоментировать
float x = Input.GetAxisRaw("Horizontal");
float y = Input.GetAxisRaw("Vertical");
return new Vector2(x, y).normalized;
}
private void ApplyVelocity(Vector2 direction)
{
rb.linearVelocity = direction * Speed;
}
//
}