Подскажите пожалуйста как лучше написать скрипт движения персонажа в 2д игре с видом сверху так чтобы персонаж обходил или останавливался перед зданиями. Дело в том что здания в игре - обычные спрайты ну как и сам движущийся персонаж и не заходил на скалы. Я начал писать движение персонажа - при клике мышкой по экрану персонаж идет к клику, но столкнулся с проблемой что персонаж проходит прямо по зданию перед ним, теперь надо дорабатывать скрипт просто не придумаю как.
void Update () {
if (Input.GetMouseButtonDown(0)) {
SetTarget();
}
if (target && !isMove) {
StartCoroutine(MoveTo(target.position));
}
if (target)
{
StartCoroutine(delTarget());
}
}
public void SetTarget() {
RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
if (hit) {
if (hit.collider == null) return;
string tag = hit.collider.tag;
if (tag.Equals(HelperConst.BUILD) || tag.Equals(HelperConst.ROCKS)) {
return;
}
if (target) {
Destroy(target.gameObject);
}
GameObject newTarget = Instantiate(Resources.Load("Point"), hit.point, Quaternion.identity) as GameObject;
target = newTarget.transform;
}
}
public IEnumerator delTarget() {
yield return new WaitForSeconds(2);
if (target)
{
Destroy(target.gameObject);
}
}
public IEnumerator MoveTo(Vector3 target) {
isMove = true;
int posWalk = HelperConst.getOnePos(transform.position, target);
animator.SetInteger("pos", posWalk);
float lengthLocTarget = locTarget.magnitude;
float xst0 = speed * Time.deltaTime;
float xst = lengthLocTarget / xst0;
float posNow = 0;
while (posNow < lengthLocTarget) {
transform.position +=locTarget.normalized*speed*Time.deltaTime;//*locTarget.normalized;
posNow += speed * Time.deltaTime; ;
yield return null;
}
isMove = false;
}
Ребят, решил после js изучать С#, сразу возникли сложностиНеобходимо перебрать двухмерный массив
У меня в решении два проектаВ главном проекте я могу обратиться к классу следующим образом:Microsoft
Возможно вопрос не совсем корректныйДопустим у нас имеется следующий код:
Пытаюсь показать основные проблемы транзакций при помощи двух приложений, но не могу реализовать даже "грязное чтение"Есть кнопка "вывести...