Воскресенье, 28 Апреля 2024, 00:25

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Форум игроделов » Записи участника » 88mml72 [46]
Результаты поиска
88mml72Дата: Пятница, 18 Июля 2014, 23:15 | Сообщение # 21 | Тема: Uscript Selection Box
частый гость
Сейчас нет на сайте
как мне кажется визуальный сриптинг это путь дальнейшей эволюции в программировании, думаю сказочных результатов можно добиться там и там зависит от пользователя, но вообще у меня просто неприязнь к текстовому программированию, потому что после многочасового просиживания у монитора с ним начинается помутнение в голове
88mml72Дата: Пятница, 18 Июля 2014, 23:07 | Сообщение # 22 | Тема: Uscript Selection Box
частый гость
Сейчас нет на сайте
и не поймешь если отсутствует у тебя uscript, поэтому и писал так разбросанно, въедит тот кто работает с этой прогой, показные проекты имею ввиду example projects которые можно скачать например по этой ссылке http://www.uscript.net/docs/index.php?title=Example_Projects

вот там есть файл Draw Box

дальше думаю понятно

Добавлено (18.07.2014, 22:59)
---------------------------------------------
фактически я прошу доделать задуманный контекст проекта либо показать в каком направлении двигаться

думаю так еще понятней...

Добавлено (18.07.2014, 23:01)
---------------------------------------------
да функция contains в шарпе проверяет попадает ли объект в зону прямоугольника

Добавлено (18.07.2014, 23:04)
---------------------------------------------
Код
using UnityEngine;
using System.Collections;

public class SelectionBox : MonoBehaviour
{
public Vector3 point1, point2;
private float hight, width;
private Rect selectRectGUI, selectRect;
public bool DragMouse;
public static SelectionBox selectionBoxtemp;

void Awake()
{
selectionBoxtemp = this;
}
public Texture2D selectTextur;

public void OnGUI()
{
if (DragMouse)
{
width = point2.x - point1.x;
hight = (Screen.height - point2.y) - (Screen.height - point1.y);
selectRect = new Rect(point1.x, Screen.height - point1.y, width, hight);
GUI.DrawTexture(selectRect, selectTextur, ScaleMode.StretchToFill, true);
}
}
public void SelectBox()
{
width = point2.x - point1.x;
hight = (Screen.height - point2.y) - (Screen.height - point1.y);
//инверсия
if (width < 0)
{
width -= width + width;
}
if (hight < 0)
{
hight -= hight + hight;
}
if (point2.x < point1.x)
{
var x1 = point1.x;
var x2 = point2.x;
point1.x = x2;
point2.x = x1;
}
if (point2.y > point1.y)
{
var y1 = point1.y;
var y2 = point2.y;
point1.y = y2;
point2.y = y1;

}
selectRect = new Rect(point1.x, Screen.height - point1.y, width, hight);
foreach (GameObject i in UnitsArrays.tempUnitsArray.Allunits)
{
if (selectRect.Contains(camera.WorldToScreenPoint(i.transform.position)))
{
UnitsArrays.tempUnitsArray.addSelectedObject(i);
}
}

}
}

Добавлено (18.07.2014, 23:06)
---------------------------------------------
вот полная реализация в шарпе

Добавлено (18.07.2014, 23:07)
---------------------------------------------
но аналогичное я хочу сделать в ускрипте, если так непонятно то я пас

Сообщение отредактировал 88mml72 - Пятница, 18 Июля 2014, 23:05
88mml72Дата: Пятница, 18 Июля 2014, 21:56 | Сообщение # 23 | Тема: Uscript Selection Box
частый гость
Сейчас нет на сайте
в ускрипте есть показные проекты, один из них DrawBox вот как заставить на основе позиции рэкта селектитца отдельные объекты тоесть чтоб был тру если объект столкнулся с рэктом
в шарпе есть функция

foreach (GameObject i in UnitsArrays.tempUnitsArray.Allunits)
{
if (selectRect.Contains(camera.WorldToScreenPoint(i.transform.position)))
{
UnitsArrays.tempUnitsArray.addSelectedObject(i);
}
}
где подобное реализуется, надеюсь суть вопроса разъяснил внятно
88mml72Дата: Пятница, 11 Июля 2014, 18:28 | Сообщение # 24 | Тема: передача объекта из файла в файл
частый гость
Сейчас нет на сайте
Цитата
void Awake(){
temp = this;
}


с данным методом заработало, спасибо
88mml72Дата: Пятница, 11 Июля 2014, 12:56 | Сообщение # 25 | Тема: передача объекта из файла в файл
частый гость
Сейчас нет на сайте
using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class DetectClicksAndTouches : MonoBehaviour
{  
  //This variable is optional; if not set it will default to the main camera
  //This is so that you can detect clicks/touches on a separate UI Camera
  //This variable does NOT update in real time
  public Camera detectionCamera;
   
  //This variable adds a Debug.Log call to show what was touched
  public bool debug = false;
   
  //This is the actual camera we reference in the update loop, set in Start()
  private Camera _camera;
     //List<GameObject> UnitPlayerBase = new List<GameObject>();
  void Start()
  {
          
   if(detectionCamera != null)
   {
    _camera = detectionCamera;
   }
   else
   {
    _camera = Camera.main;
   }
  }
   
  // Update is called once per frame
  void Update ()
  {
   Ray ray;
   RaycastHit hit;
    
    if(Input.GetMouseButtonDown(0))  //Check to see if we've clicked
    {
     //Set up our ray from screen to scene
     ray = _camera.ScreenPointToRay(Input.mousePosition);  
      
     //If we hit...
     if(Physics.Raycast (ray, out hit, Mathf.Infinity))
     {
      //Tell the system what we clicked something if in debug
      if(debug)
      {
       Debug.Log("You clicked " + hit.collider.gameObject.name,hit.collider.gameObject);
      }
                     if (hit.collider.tag == "Player")
                     {

                         UnitBase.temp.UnitPlayerBaseFunction(hit.collider.gameObject);
                         //UnitPlayerBase.Add(hit.collider.gameObject);

                         //Debug.Log(UnitPlayerBase.Count);
                     }

      //Run the Clicked() function on the clicked object

     }
                 hit.transform.gameObject.SendMessage("Clicked", hit.point, SendMessageOptions.DontRequireReceiver);
    }
     
    if(Input.GetMouseButtonDown(1))  //Check to see if we've clicked
    {
     //Set up our ray from screen to scene
     ray = _camera.ScreenPointToRay(Input.mousePosition);  
      
     //If we hit...
     if(Physics.Raycast (ray, out hit, Mathf.Infinity))
     {
      //Tell the system what we clicked something if in debug
      if(debug)
      {
       Debug.Log("You right clicked " + hit.collider.gameObject.name,hit.collider.gameObject);
      }
       
      //Run the Clicked() function on the clicked object
      hit.transform.gameObject.SendMessage("RightClicked", hit.point, SendMessageOptions.DontRequireReceiver);
     }    
    }
    
  }
}[

Добавлено (11.07.2014, 12:56)
---------------------------------------------
это первый файл вот второй (чуть код сменил)

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class UnitBase : MonoBehaviour
{
public static UnitBase temp;
List<GameObject> UnitPlayerBase = new List<GameObject>();

public void UnitPlayerBaseFunction(GameObject g)
{

UnitPlayerBase.Add(g);
Debug.Log(UnitPlayerBase.Count);
}
}

Сообщение отредактировал 88mml72 - Пятница, 11 Июля 2014, 12:54
88mml72Дата: Пятница, 11 Июля 2014, 11:52 | Сообщение # 26 | Тема: передача объекта из файла в файл
частый гость
Сейчас нет на сайте
извиняюсь вместо transmissionobject передается hit.collider.gameObject но он полюбому не пуст

Добавлено (11.07.2014, 11:52)
---------------------------------------------

Цитата
Полный текст ошибки укажите.


NullReferenceException: Object reference not set to an instance of an object
DetectClicksAndTouches.Update () (at Assets/camera/DetectClicksAndTouches.cs:58)
88mml72Дата: Пятница, 11 Июля 2014, 00:38 | Сообщение # 27 | Тема: передача объекта из файла в файл
частый гость
Сейчас нет на сайте
файл 1. сюда добавляется объект в массив

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class UnitBase : MonoBehaviour
{
List<GameObject> UnitPlayerBase = new List<GameObject>();

public void UnitPlayerBaseFunction(GameObject g)
{

UnitPlayerBase.Add(g);
Debug.Log(UnitPlayerBase.Count);
}
}
файл 2 отсюда вызывается метод

...............................................................................
UnitBase tempManager;
......................................................

if (hit.collider.tag == "Player")
{
tempManager.UnitPlayerBaseFunction(TransmissionObject);
}
при передаче возникает ошибка что мол пустая ссылка а если использовать ref иле out пишет что использование этих модификаторов для динамических объектов недопустимо как я понял
88mml72Дата: Среда, 19 Марта 2014, 17:23 | Сообщение # 28 | Тема: загрузка текстур скриптом
частый гость
Сейчас нет на сайте
выкладую фесь файл

using UnityEngine;
using System.Collections;

public class MoveSelectedUnitsOnRightClick : MonoBehaviour
{
public GameObject moveEffectObject;
private UnitManager unitManager;
public float angle = -10.0f;
public Texture2D textureForward, textureBackward, textureLeft, textureRight;

void Start()
{
//синхронизация PlayerUnitManager c объектом
GameObject unitManagerObject = GameObject.FindGameObjectWithTag("PlayerUnitManager");
//???
unitManager = unitManagerObject.GetComponent<UnitManager>();

}

//синхронизация правого клика миши с координатами
void RightClicked(Vector3 clickPosition)
{
bool unitsSelected = false;
//вызов метода
foreach (GameObject unit in unitManager.GetSelectedUnits())
{
unitsSelected = true;
//приказ на движение
unit.SendMessage("MoveOrder", clickPosition);

//работает поворот объекта на цель

// unit.transform.rotation = Quaternion.Slerp(unit.transform.rotation, Quaternion.LookRotation(clickPosition - unit.transform.position),1 * Time.deltaTime);
/*if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 10.0f)
{
Debug.Log("+10°");
unit.transform.LookAt(clickPosition);
}*/

unit.renderer.material.mainTexture = textureLeft;

}
if (unitsSelected)
{
Instantiate(moveEffectObject, clickPosition, moveEffectObject.transform.rotation);
}

}
}
88mml72Дата: Среда, 19 Марта 2014, 17:09 | Сообщение # 29 | Тема: загрузка текстур скриптом
частый гость
Сейчас нет на сайте
не знаю
public Texture2D textureForward, textureBackward, textureLeft, textureRight;
иле
public Texture textureForward, textureBackward, textureLeft, textureRight;

потом цеплял через сандбокс текстуру на объект
88mml72Дата: Среда, 19 Марта 2014, 12:26 | Сообщение # 30 | Тема: загрузка текстур скриптом
частый гость
Сейчас нет на сайте
облазил весь инет но так и не нашел решение проблемы.
а надо так: при нажатии мышки на соответствующий угол террэйна у объекта меняется текстура но при использовании следующего кода:

if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 10.0f)
{

Debug.Log("+10°");
unit.transform.LookAt(clickPosition);
unit.renderer.material.mainTexture = textureLeft;


}

объект окрашивается в белый цвет будто бы для него и не существует выше приведенного кода.
вопрос: есть ли альтернативы решения проблемы?

Добавлено (19.03.2014, 12:26)
---------------------------------------------
да и функция Material.SetTexture тоже не помогает если че

88mml72Дата: Суббота, 15 Марта 2014, 18:47 | Сообщение # 31 | Тема: касательно Angel
частый гость
Сейчас нет на сайте
значит такой расклад: код
if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= angle)
работает прекрасно только если функцию
//поворот юнита на позиуию кликанья
unit.transform.LookAt(clickPosition);
поместить после оператора if.

Добавлено (13.03.2014, 12:06)
---------------------------------------------
нужна подсказка касательно этой темы. Скажем так, дэбуг выводит мне координаты по нажатии мышки на соответствующею позицию, однако оперирует функция Angle только на 180 градусов, работает оно так; допустим отчет в 10° и параллельно по обеим фронтам(восток, и запад) до замыкания окружности( до 180°) но мне надо чтоб было на востоке допустим 180° а на западе -180° либо и вовсе 360°

if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 10.0f)
{
Debug.Log("+10°");
unit.transform.LookAt(clickPosition);
}
else if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 20.0f)
{
Debug.Log("+20°");
unit.transform.LookAt(clickPosition);
}
else if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 30.0f)
{
Debug.Log("+30°");
unit.transform.LookAt(clickPosition);
}
else if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 40.0f)
{
Debug.Log("+40°");
unit.transform.LookAt(clickPosition);
}
else if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 50.0f)
{
Debug.Log("+50°");
unit.transform.LookAt(clickPosition);
}
else if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 60.0f)
{
Debug.Log("+60°");
unit.transform.LookAt(clickPosition);
}
else if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 70.0f)
{
Debug.Log("+70°");
unit.transform.LookAt(clickPosition);
}
else if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 80.0f)
{
Debug.Log("+80°");
unit.transform.LookAt(clickPosition);
}
else if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 90.0f)
{
Debug.Log("+90°");
unit.transform.LookAt(clickPosition);
}
else if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 100.0f)
{
Debug.Log("+100°");
unit.transform.LookAt(clickPosition);
}
else if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 110.0f)
{
Debug.Log("+110°");
unit.transform.LookAt(clickPosition);
}
else if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 120.0f)
{
Debug.Log("+120°");
unit.transform.LookAt(clickPosition);
}
else if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 130.0f)
{
Debug.Log("+130°");
unit.transform.LookAt(clickPosition);
}
else if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 140.0f)
{
Debug.Log("+140°");
unit.transform.LookAt(clickPosition);
}
else if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 150.0f)
{
Debug.Log("+150°");
unit.transform.LookAt(clickPosition);
}
else if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 160.0f)
{
Debug.Log("+160°");
unit.transform.LookAt(clickPosition);
}
else if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 170.0f)
{
Debug.Log("+170°");
unit.transform.LookAt(clickPosition);
}
else if (Vector3.Angle(unit.transform.forward, clickPosition - unit.transform.position) <= 180.0f)
{
Debug.Log("+180°");
unit.transform.LookAt(clickPosition);
}

Добавлено (15.03.2014, 17:40)
---------------------------------------------


Сообщение отредактировал 88mml72 - Суббота, 15 Марта 2014, 19:03
88mml72Дата: Четверг, 13 Марта 2014, 00:13 | Сообщение # 32 | Тема: касательно Angel
частый гость
Сейчас нет на сайте
сложная тема для меня поэтому подход может показаться несколько не адекватным вашим навыкам но все таки вопрос следующий:

имеется следующий код: (суть вопроса, мне нужно чтоб в консоль выводилось сообщение "Visible!" на установленный диапазон угла, потому что на данном этапе дэбуг срабатывает на все 360°

[/code]public float angle = 90f;

void RightClicked(Vector3 clickPosition)
{
//вызов метода
foreach (GameObject unit in unitManager.GetSelectedUnits())
{
unitsSelected = true;
//приказ на движение
unit.SendMessage("MoveOrder", clickPosition);

//поворот юнита на позиуию кликанья
unit.transform.LookAt(clickPosition);
// выводим на экран строку HelloWorld
//вот проблема:
if (Vector3.Angle(unit.transform.position, clickPosition) <= angle)
{
Debug.Log("Visible!");
}

Debug.Log("Hello World!");

}

}
}[code]


Сообщение отредактировал 88mml72 - Четверг, 13 Марта 2014, 00:16
88mml72Дата: Понедельник, 10 Марта 2014, 16:48 | Сообщение # 33 | Тема: GetComponent error
частый гость
Сейчас нет на сайте
спасибо...
Цитата
А зачем Вы у массива пытаетесь компонент получить?

код не мой, просто с одного урока списываю https://www.youtube.com/watch?v=qnriIr_rPAk
88mml72Дата: Понедельник, 10 Марта 2014, 16:22 | Сообщение # 34 | Тема: GetComponent error
частый гость
Сейчас нет на сайте
вот такая вот проблема:

заранее благодарен !
88mml72Дата: Среда, 26 Февраля 2014, 21:11 | Сообщение # 35 | Тема: совместное изучение c++ на игровом 2.5d движке возможно и бо
частый гость
Сейчас нет на сайте
немного предыстории:
собственно читал книгу парты но на 575отой странице надоело мне это дело, поскольку автор книги делает неинтересные программы, да и знания усвоенные по книги начали выветриватся со временем из головы, решил изучать один движок My WebPage.
так вот, автор и сам новичек в с++ и как он утверждает писал сабж на фазе познавания c++.
И поэтому сам движок легок в понимании, на данный момент занимаюсь его изучением, добавлением комментариев напр. что за функция и для чего итд. после планирую перестроить код под свой вкус и занятся кодингом чегото простого в движке.
(созданием простых юнитов, анимированием спрайтов итд.)

собственно тут и подумываю что данное направление будет еще комуто интерестно.

движок написан на SFML (до этого я работал только на консоле но все классы у этой библиотеки описаны на сайте изготовителя, ничего сложного там нет).
никаких лицензий естественно не надо.

да, сам я новичек в с++ понимаю только его главные аспекты(например наследование классов, повторное использование кода а также другие прелести c++ мне еще не знакомы)
коммуникация будет через скайп, письменная, сколько времени я буду отдавать себя делу сказать не могу, если честно я человек настроения, может быть десять часов в день а может быть всего час в неделю(надеюсь за счет взаимодействия с камерадами всетаки по 10:)) но собственно каждый работает независимо и на себя и у каждого будет исходник проекта. в любой момент человек может выйти и взять с собой последнюю версию проекта и делать на нем все что пожелает.

требование к кандитам всеголишь одно:
условное понимание c++ однако принцыпы ооп вы всетаки же должны понимать потомучто разрабатывать сабж мы(я) будем по этой доктрине.
88mml72Дата: Суббота, 20 Августа 2011, 16:55 | Сообщение # 36 | Тема: пак вопросов о кру энжайн 3
частый гость
Сейчас нет на сайте
Quote
radeon hd 3660


карта слабая но для твоих целей думаю подойдет.
88mml72Дата: Пятница, 19 Августа 2011, 20:34 | Сообщение # 37 | Тема: Вопрос-Ответ по CryENGINE 3 SDK
частый гость
Сейчас нет на сайте
Quote
Recognized pre-commands
Вроде в параметрах включить можно.

вот если б кто помог...
88mml72Дата: Четверг, 18 Августа 2011, 22:09 | Сообщение # 38 | Тема: Вопрос-Ответ по CryENGINE 3 SDK
частый гость
Сейчас нет на сайте
то что старые карты не поддерживают dx10 известно почти каждому
88mml72Дата: Четверг, 18 Августа 2011, 21:14 | Сообщение # 39 | Тема: Вопрос-Ответ по CryENGINE 3 SDK
частый гость
Сейчас нет на сайте
Recognized Pre-Commands

DEVMODE: In DEVMODE, the lua debugger is disabled and the pak file system now prefers files outside the pak files. The LUA command execution in the console is now allowed (by using the # prefix). Console variables marked with the cheat flag can be changed.
DX9: Use Direct3D 9 renderer (override the system.cfg setting).
DX10: Use Direct3D 10 renderer (override the system.cfg setting).

MOD [SANDBOX:Modname]: Loads a MOD DLL, instead of the Crysis code; adds the folder of the MOD to the data directories to search in. MODs must be located in the engine folder, in the /Mods subdirectory.
root: Launcher.exe -root < RootFolder > overrides the default folder for log files (also, LogBackups), cfg files (for the exec command), and level rotation files - the command line option is mostly used for 3rd party hosting, with multiple instances on the same machine support.

написано в мануале.
88mml72Дата: Четверг, 18 Августа 2011, 20:36 | Сообщение # 40 | Тема: Вопрос-Ответ по CryENGINE 3 SDK
частый гость
Сейчас нет на сайте
помогите запустить в режиме DX10, все перепробовал, рендер пишет DX9. прописывал строчку r_driver DX10 в system.cfg не помогает.
Форум игроделов » Записи участника » 88mml72 [46]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

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