Воскресенье, 24 Ноября 2024, 21:44

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Raycast
StivДата: Понедельник, 15 Февраля 2016, 19:50 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Ребят, пишу и по сто раз переписываю код в котором необходимо сделать переход в координаты коллайдера, (картинка прилагается).
Вообщем вот что я мудрил и само собой ни чего нормального из этого не вышло. подмогните, как сделать правильно.
Я так понимаю нужен луч из камеры к которой будет привязан публичный игрок (Player) или какой либо передвигаемый GameObject. И этот игрок должен принимать координаты hit. Но вот как это сделать правильно я не пойму.
Помогите гениальные программерские умы!!!


Добавлено (15 февраля 2016, 19:48)
---------------------------------------------
тьфу ты сам скрипт то забыл (он кривой и я в это верю)!!!
Код
using UnityEngine;
using System.Collections;

public class ClickableTile : MonoBehaviour {

public GameObject box;

void Update()
{

if (Input.GetMouseButtonUp (1))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray, out hit))
{
GameObject b = GetComponent <GameObject>();
b.transform.position = hit.point;
b.transform.rotation = Quaternion.LookRotation (-hit.normal);
}
}
}

void OnMouseUp()
{
gameObject = GetComponent<GameObject> (gameObject);
RaycastHit hit;
//transform.position = hit.gameObject.transform.position;
Debug.Log ("Я над клеткой");
}
}

Добавлено (15 февраля 2016, 19:50)
---------------------------------------------
Ну тут был как бы эксперимент с перемещение в один куб я понимаю, что публичным будет только один куб!


Сообщение отредактировал Stiv - Понедельник, 15 Февраля 2016, 19:49
LaushДата: Понедельник, 15 Февраля 2016, 20:40 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
Stiv, Что то ты намудрил)) До такого даже я бы не додумался))
Держи) Только игроку родительский объект "под пол" присвой. Чтобы игрок не проваливался в куб, ведь гизмо у него в центре по умолчанию.
Код
using UnityEngine;
using System.Collections;

public class ClickableTile : MonoBehaviour {
    public GameObject player;

    void Update()
    {

  if (Input.GetMouseButtonUp (1))
  {
   Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
   RaycastHit hit;
   if (Physics.Raycast (ray, out hit)) {
    if (hit.collider.tag == "Cube") {
     player.transform.position = hit.point;   
    }
   }
    }
    }
}

Добавлено (15 февраля 2016, 20:40)
---------------------------------------------
И тег присвой "Cube" тем объектам, по которым телепортироваться будешь)


[PC/Android/iOS/WEB] 30 Days to survive
[PC] Dead Defense
[PC] Саламандра - история пирата
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг