Что я пишу не так? По идее, этот скрипт должен двигать прицел по кругу, вокруг персонажа и следовать за указателем мыши, но прицел крутится только на одной половине экрана.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Crosshair : MonoBehaviour {
public GameObject CrossHair;
//public float zDistance = 10f;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
MoveCrossHair();
}
private void MoveCrossHair(){
var mousePos = Input.mousePosition;
Vector3 aim = new Vector3(mousePos.x, mousePos.y, mousePos.z);
if (aim.magnitude > 0.0f){
aim.Normalize();
aim *= 2f;
CrossHair.transform.position = aim;
}
}
}
Input.mousePosition - возвращает вам положение курсора в экранных координатах, где левый нижний угол (0,0), а правый (ширина, высота) разрешения.
При этом, видимо, ваш персонаж стоит в мировых координатах (0,0) поэтому и получается, что прицел всегда справа от него. В вашем случае я бы предложил использовать вот такой код:
[SerializeField]
GameObject CrossHair;
[SerializeField]
float _distance;
void Update()
{
Move();
}
void Move()
{
var mousePos = Input.mousePosition; //получаем экранные координаты
var worldCursor = Camera.main.ScreenToWorldPoint(mousePos); //превращаем в мировые
var aim = new Vector3(worldCursor.x, worldCursor.y, transform.position.z); //устанавливаем z равный z нашего персонажа
if (worldCursor.magnitude > 0)
{
var newPos = Vector3.MoveTowards(transform.position, aim, _distance); //Сдвигаем точку от положения персонажа, в сторону цели не дальше, чем на _distance
CrossHair.transform.position = newPos;
}
}
Как меняется крипторынок и к чему готовиться владельцам криптообменников
Требуется отформатировать строки, содержащие телефонные номера, так, чтобы их можно было потом сравнитьК примеру:
У меня есть несколько Image и Button, они динамически (через код) добавляются в WrapPanel или в StackPanel, я хочу связать в коде: Source Картинки и Content Кнопки,...
На данный момент у меня есть вот такой код выборки данных: