Создание объекта - Форум Игроделов
Пт, 17 Май 2024, 06:28 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » СКРИПТИНГ » Создание объекта ([C#])
Создание объекта
nikitenkoДата: Вс, 11 Сен 2011, 15:59 | Сообщение # 1
Нет аватара
 
Сообщений: 1
Награды: 0
Репутация: 0
Статус: Offline
здравствуйте помогите разобраться с несколькими вопросами:
* Узнать координаты курсора на экране(разобрался)
* Учитывая текущее расположение камеры, вычислить координаты точки, в к-ой находится курсор
* Пустить вертикально вниз луч и определить координаты его столкновения с ландшафтом
* Поместить в эту точку обьект
 
Сообщениездравствуйте помогите разобраться с несколькими вопросами:
* Узнать координаты курсора на экране(разобрался)
* Учитывая текущее расположение камеры, вычислить координаты точки, в к-ой находится курсор
* Пустить вертикально вниз луч и определить координаты его столкновения с ландшафтом
* Поместить в эту точку обьект

Автор - nikitenko
Дата добавления - 11 Сен 2011 в 15:59
Max-HunterДата: Вс, 11 Сен 2011, 17:01 | Сообщение # 2
Нет аватара
 
Сообщений: 151
Награды: 1
Репутация: 60
Статус: Offline
Quote (nikitenko)
* Пустить вертикально вниз луч и определить координаты его столкновения с ландшафтом

Сдесь поможет RayCast
Quote (nikitenko)
* Поместить в эту точку обьект

тЫц
Code
// Creates a game object named "Player" and
// adds a rigidbody and box collider to it.
player = new GameObject ("Player");
player.AddComponent ("Rigidbody");
player.AddComponent ("BoxCollider");
 
Сообщение
Quote (nikitenko)
* Пустить вертикально вниз луч и определить координаты его столкновения с ландшафтом

Сдесь поможет RayCast
Quote (nikitenko)
* Поместить в эту точку обьект

тЫц
Code
// Creates a game object named "Player" and
// adds a rigidbody and box collider to it.
player = new GameObject ("Player");
player.AddComponent ("Rigidbody");
player.AddComponent ("BoxCollider");

Автор - Max-Hunter
Дата добавления - 11 Сен 2011 в 17:01
СкептикДата: Ср, 21 Сен 2011, 02:03 | Сообщение # 3
Мыслитель
 
Сообщений: 5860
Награды: 48
Репутация: 1731
Статус: Offline
Code

using UnityEngine;
using System.Collections;
   
public class MouseInteraction : MonoBehaviour {
   
         GameObject minePrefab;
          
         // Use this for initialization
         void Start () {
                 minePrefab = Resources.Load("minePrefab") as GameObject;
         }
          
         // Update is called once per frame
         void Update () {
                 Ray ray = Camera.mainCamera.ScreenPointToRay(Input.mousePosition);
                 RaycastHit hit = new RaycastHit();
                 if(Input.GetMouseButtonDown(0))
                 {
                         if(Physics.Raycast(ray,out hit))
                         {
                    //We've hit something
                    if(hit.collider.gameObject.name.Equals("ground"))
                    {
                    //We've hit the ground
                    CreateMine(hit.point);
                    }
                         }
                 } else if(Input.GetMouseButtonDown(1)) {
                         if(Physics.Raycast(ray,out hit))
                         {
                    //We've hit something
                    if(hit.collider.gameObject.name.Equals("minePrefab(Clone)"))
                    {
                    //We've hit a mine
                    GameObject.Destroy(hit.collider.gameObject);
                    }
                         }
                 }
         }
          
         void CreateMine(Vector3 pos)
         {
                 Instantiate(minePrefab, pos, Quaternion.identity);
         }
}


Фанат игр Max Payne и Fahrenheit.
 
Сообщение
Code

using UnityEngine;
using System.Collections;
   
public class MouseInteraction : MonoBehaviour {
   
         GameObject minePrefab;
          
         // Use this for initialization
         void Start () {
                 minePrefab = Resources.Load("minePrefab") as GameObject;
         }
          
         // Update is called once per frame
         void Update () {
                 Ray ray = Camera.mainCamera.ScreenPointToRay(Input.mousePosition);
                 RaycastHit hit = new RaycastHit();
                 if(Input.GetMouseButtonDown(0))
                 {
                         if(Physics.Raycast(ray,out hit))
                         {
                    //We've hit something
                    if(hit.collider.gameObject.name.Equals("ground"))
                    {
                    //We've hit the ground
                    CreateMine(hit.point);
                    }
                         }
                 } else if(Input.GetMouseButtonDown(1)) {
                         if(Physics.Raycast(ray,out hit))
                         {
                    //We've hit something
                    if(hit.collider.gameObject.name.Equals("minePrefab(Clone)"))
                    {
                    //We've hit a mine
                    GameObject.Destroy(hit.collider.gameObject);
                    }
                         }
                 }
         }
          
         void CreateMine(Vector3 pos)
         {
                 Instantiate(minePrefab, pos, Quaternion.identity);
         }
}

Автор - Скептик
Дата добавления - 21 Сен 2011 в 02:03
Форум Игроделов » UNITY3D » СКРИПТИНГ » Создание объекта ([C#])
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024