| 
				
				Скрипт, создающий объект
				 |   |  
| Shagovevg | Дата: Понедельник, 23 Февраля 2015, 22:37 | Сообщение # 1 |  
 
почетный гость 
Сейчас нет на сайте 
 
 | Всем привет. Очень нужен скрипт, создающий игровой объект в месте клика мышью. Пространство 2д. Пожалуйста помогите.
 |  
| 
 | 
 |    |  
| MANMANA | Дата: Вторник, 24 Февраля 2015, 00:52 | Сообщение # 2 |  
| 
 почти ветеран 
Сейчас нет на сайте 
 
 | как и в предыдущем посте   http://answers.unity3d.com/questio....-i.html   здесь вы уже знаете координаты клика мышью   + Вам необходимо создать инстанс Игрового объекта   http://docs.unity3d.com/ScriptReference/Object.Instantiate.html   получается 
   Код  using UnityEngine;    using System.Collections;        public class GotoMouse : MonoBehaviour {         public Transform prefab;//for drag'n'drop your prefab in the Insperctor         private Vector3 target;               void Update () {            if (Input.GetMouseButtonDown(0)) {                target = Camera.main.ScreenToWorldPoint(Input.mousePosition);                target.z = transform.position.z;            }            Instantiate(prefab, target, Quaternion.identity) as Transform;//создается инстанс префаба в месте клика мышью   //или вместо последней строки   //Transform clone;//имя для нового ГО   // clone = Instantiate(prefab, target, transform.rotation) as Transform;//создание инстанса вашего префаба с новым именем 'clone'       }        }  
  http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг   VKонтакте 3Dbuffer 
   Последнее: 
   Новый раздел "Текстуры" 
   Как запатентовать, защитить техническое решение, игру, идею
 |  
| 
 | 
 |    |  
| Shagovevg | Дата: Вторник, 24 Февраля 2015, 08:08 | Сообщение # 3 |  
 
почетный гость 
Сейчас нет на сайте 
 
 | Цитата MANMANA (  )  как и в предыдущем посте   http://answers.unity3d.com/questio....-i.html   здесь вы уже знаете координаты клика мышью   + Вам необходимо создать инстанс Игрового объекта   http://docs.unity3d.com/ScriptReference/Object.Instantiate.html   получается      Ошибка выходит - Assets/Scripts/GotoMouse.cs(13,78): error CS0201: Only assignment, call, increment, decrement, and new object expressions can be used as a statementДобавлено (24 февраля 2015, 08:04) ---------------------------------------------
  Цитата MANMANA (  )  Instantiate(prefab, target, Quaternion.identity) as Transform;//создается инстанс префаба в месте клика мышью   //или вместо последней строки   //Transform clone;//имя для нового ГО   // clone = Instantiate(prefab, target, transform.rotation) as Transform;     Если вместо последней строчки:   Transform clone;//имя для нового ГО   		clone = Instantiate(prefab, target, transform.rotation) as Transform;   То в центре сцены начинает бесконечно спауниться выбранный префаб...Добавлено (24 февраля 2015, 08:08) ---------------------------------------------
  Цитата MANMANA (  )  http://answers.unity3d.com/questio....-i.html      Пробовал спросить на Unity Answers, но мой вопрос почему-то отклонили...
 |  
| 
 | 
 |    |  
| aFriend | Дата: Вторник, 24 Февраля 2015, 15:10 | Сообщение # 4 |  
| 
 участник 
Сейчас нет на сайте 
 
 | Цитата using UnityEngine;   using System.Collections; 
   public class GotoMouse : MonoBehaviour {   public Transform prefab;//for drag'n'drop your prefab in the Insperctor   private Vector3 target; 
   void Update () {   if (Input.GetMouseButtonDown(0)) {   target = Camera.main.ScreenToWorldPoint(Input.mousePosition);   target.z = transform.position.z;   }   Instantiate(prefab, target, Quaternion.identity) as Transform;//создается инстанс префаба в месте клика мышью   //или вместо последней строки   //Transform clone;//имя для нового ГО   // clone = Instantiate(prefab, target, transform.rotation) as Transform;//создание инстанса вашего префаба с новым именем 'clone'   }   }     Конечно, он будет создаваться бесконечно, ведь создание обьекта находиться в Update() без всяких проверок, нужно его туда добавить:   Код using UnityEngine;   using System.Collections; 
   public class GotoMouse : MonoBehaviour {   public Transform prefab;   private Vector3 target; 
   void Update () {   if (Input.GetMouseButtonDown(0)) {   target = Camera.main.ScreenToWorldPoint(Input.mousePosition);   target.z = transform.position.z;   Instantiate(prefab, target, Quaternion.identity) as Transform;   }   }   } Добавлено (24 февраля 2015, 15:10) --------------------------------------------- А вообще, тут слишком много кода, можно уменьшить 
 
 Сообщение отредактировал aFriend - Вторник, 24 Февраля 2015, 14:56  |  
| 
 | 
 |    |  
| Shagovevg | Дата: Вторник, 24 Февраля 2015, 20:09 | Сообщение # 5 |  
 
почетный гость 
Сейчас нет на сайте 
 
 | Цитата aFriend (  )  Код   using UnityEngine;   using System.Collections; 
   public class GotoMouse : MonoBehaviour {   public Transform prefab;   private Vector3 target; 
   void Update () {   if (Input.GetMouseButtonDown(0)) {   target = Camera.main.ScreenToWorldPoint(Input.mousePosition);   target.z = transform.position.z;   Instantiate(prefab, target, Quaternion.identity) as Transform;   }   }   }   Добавлено (24 февраля 2015, 15:10)   ---------------------------------------------   А вообще, тут слишком много кода, можно уменьшить      Все равно выдается ошибка - Assets/Scripts/GotoMouse.cs(12,86): error CS0201: Only assignment, call, increment, decrement, and new object expressions can be used as a statement.   Что нужно исправить, чтобы скрипт заработал?Добавлено (24 февраля 2015, 20:09) ---------------------------------------------
  Код using UnityEngine; 
   using System.Collections; 
   public class mousecreate : MonoBehaviour {        Ray ray;    RaycastHit hit;    public GameObject prefab;        // Use this for initialization    void Start () {                        }        // Update is called once per frame    void Update () {          ray=Camera.main.ScreenPointToRay(Input.mousePosition);          if(Physics.Raycast(ray,out hit))     {            if(Input.GetKey(KeyCode.Mouse0))      {       GameObject obj=Instantiate(prefab,new Vector3(hit.point.x,hit.point.y,0), Quaternion.identity) as GameObject;             }           }                   }   }      В общем. Сработал только этот код. Всем, кто пытался помочь, большое спасибо) + Если кому-то потребуется аналогичный скрипт, то в это посте находится код.
 |  
| 
 | 
 |    |     
		
		 
 |