Проблема с raycast - Форум Игроделов
Пт, 17 Май 2024, 09:19 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » СКРИПТИНГ » Проблема с raycast (при нажатие ЛКМ(если я смотрю на ландшафт) он удаляется)
Проблема с raycast
ЧингисханДата: Вс, 21 Дек 2014, 02:01 | Сообщение # 1
 
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline
Написал скрипт по удалению объекта через raycast, беда в том что если я смотрю на дерево или ландшафт то он берет и удаляется. Можно ли как нибудь внести объекты исключения,чтоб они не удалялись?
Код
using UnityEngine;
using System.Collections;

public class lesorub : MonoBehaviour {
  private float dist = 5f;
  // Use this for initialization
  void Start () {
   
  }
   
  // Update is called once per frame
  void Update () {
   Ray ray = new Ray (transform.position, transform.forward);
   RaycastHit hit;

   if(Physics.Raycast(ray,out hit,dist))
   {
    if(Input.GetMouseButtonDown(0))
     Destroy(hit.collider.gameObject);
  }
}
}
 
СообщениеНаписал скрипт по удалению объекта через raycast, беда в том что если я смотрю на дерево или ландшафт то он берет и удаляется. Можно ли как нибудь внести объекты исключения,чтоб они не удалялись?
Код
using UnityEngine;
using System.Collections;

public class lesorub : MonoBehaviour {
  private float dist = 5f;
  // Use this for initialization
  void Start () {
   
  }
   
  // Update is called once per frame
  void Update () {
   Ray ray = new Ray (transform.position, transform.forward);
   RaycastHit hit;

   if(Physics.Raycast(ray,out hit,dist))
   {
    if(Input.GetMouseButtonDown(0))
     Destroy(hit.collider.gameObject);
  }
}
}

Автор - Чингисхан
Дата добавления - 21 Дек 2014 в 02:01
seamanДата: Вс, 21 Дек 2014, 11:29 | Сообщение # 2
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Проверяем
layer
tag
 
СообщениеПроверяем
layer
tag

Автор - seaman
Дата добавления - 21 Дек 2014 в 11:29
ЧингисханДата: Вс, 21 Дек 2014, 22:20 | Сообщение # 3
 
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline
если я правильно понял, а я надеюсь что это так, то скрипт должен выглядеть вот так

Код
using UnityEngine;  
using System.Collections;  

public class lesorub : MonoBehaviour {  
  private float dist = 5f;
  void Example() {
   gameObject.tag = "terrain";
  }
   
  // Update is called once per frame  
  void Update () {  
   Ray ray = new Ray (transform.position, transform.forward);  
   RaycastHit hit;  
    
   if(Physics.Raycast(ray,out hit,dist))  
   {  
    if(Input.GetMouseButtonDown(0))  
     Destroy(hit.collider.gameObject);  
   }  
  }  
}


Но все равно терраин удаляется, я создал тег "terrain" и присвоил это тег террайну,однако он все равно удаляется,может я делаю что то не так?
 
Сообщениеесли я правильно понял, а я надеюсь что это так, то скрипт должен выглядеть вот так

Код
using UnityEngine;  
using System.Collections;  

public class lesorub : MonoBehaviour {  
  private float dist = 5f;
  void Example() {
   gameObject.tag = "terrain";
  }
   
  // Update is called once per frame  
  void Update () {  
   Ray ray = new Ray (transform.position, transform.forward);  
   RaycastHit hit;  
    
   if(Physics.Raycast(ray,out hit,dist))  
   {  
    if(Input.GetMouseButtonDown(0))  
     Destroy(hit.collider.gameObject);  
   }  
  }  
}


Но все равно терраин удаляется, я создал тег "terrain" и присвоил это тег террайну,однако он все равно удаляется,может я делаю что то не так?

Автор - Чингисхан
Дата добавления - 21 Дек 2014 в 22:20
ilyakosДата: Пн, 22 Дек 2014, 01:16 | Сообщение # 4
 
Сообщений: 171
Награды: 0
Репутация: 8
Статус: Offline
После if(Physics.Raycast(ray,out hit,dist)) { напиши :
if(hit.collider && hit.collider.tag!="твой таг"){
 
СообщениеПосле if(Physics.Raycast(ray,out hit,dist)) { напиши :
if(hit.collider && hit.collider.tag!="твой таг"){

Автор - ilyakos
Дата добавления - 22 Дек 2014 в 01:16
ЧингисханДата: Пн, 22 Дек 2014, 22:51 | Сообщение # 5
 
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline
спасибо, щас буду творить

Добавлено (22 Дек 2014, 20:01)
---------------------------------------------
Ах да и еще один вопрос. Деревья которые поставлены через terrain, так же будут идти под тегом "terrain", если да то придеться вручную их ставить?

Добавлено (22 Дек 2014, 22:51)
---------------------------------------------
Спасибо, все работает

 
Сообщениеспасибо, щас буду творить

Добавлено (22 Дек 2014, 20:01)
---------------------------------------------
Ах да и еще один вопрос. Деревья которые поставлены через terrain, так же будут идти под тегом "terrain", если да то придеться вручную их ставить?

Добавлено (22 Дек 2014, 22:51)
---------------------------------------------
Спасибо, все работает


Автор - Чингисхан
Дата добавления - 22 Дек 2014 в 22:51
Форум Игроделов » UNITY3D » СКРИПТИНГ » Проблема с raycast (при нажатие ЛКМ(если я смотрю на ландшафт) он удаляется)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024