Скрипт в Unity для передвижения мышкой. Когда мышкой нажимаю на персонажа, то он начинает переворачиваться и взлетать, а должен стоять. Что делать?
Написал данный скрипт из гайда, так как сам новичок в этом деле. При нажатии мышкой на персонажа он начинает взлетать в воздух и переворачиваться, а должен либо совсем чуть-чуть подвинуться, либо просто не реагировать на нажатие. Помогите решить данную проблему, вот код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Tank1 : MonoBehaviour {
Vector3 targetPosition;
Vector3 lookAtTarget;
Quaternion playerRot;
float rotSpeed = 5;
float speed = 10;
bool moving = false;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButton(0))
{
SetTargetPosition();
}
if(moving)
Move();
}
void SetTargetPosition()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 1000))
{
targetPosition = hit.point;
//this.transform.LookAt(targetPosition);
lookAtTarget = new Vector3(targetPosition.x - transform.position.x,
transform.position.y,
targetPosition.z - transform.position.z);
playerRot = Quaternion.LookRotation(lookAtTarget);
moving = true;
}
}
void Move()
{
transform.rotation = Quaternion.Slerp(transform.rotation,
playerRot,
rotSpeed * Time.deltaTime);
transform.position = Vector3.MoveTowards(transform.position,
targetPosition,
speed * Time.deltaTime);
if (transform.position == targetPosition)
moving = false;
}
}