Unity 3d - Помощь в написании скриптов. - Страница 66 - Форум Игроделов
Вс, 09 Фев 2025, 18:45 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Unity 3d - Помощь в написании скриптов.
seamanДата: Ср, 27 Ноя 2013, 22:05 | Сообщение # 1301
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Ну для начала Вам нужно просто разобраться с массивами (а не с циклами). Вот здесь по Вашему что вы делаете?-
Код
distanceDown[distanceDown.length] = ...

Цитата
А на Mathf.Min юнити тоже выдаёт ошибку, только не помню какую.

Вспомните...
 
СообщениеНу для начала Вам нужно просто разобраться с массивами (а не с циклами). Вот здесь по Вашему что вы делаете?-
Код
distanceDown[distanceDown.length] = ...

Цитата
А на Mathf.Min юнити тоже выдаёт ошибку, только не помню какую.

Вспомните...

Автор - seaman
Дата добавления - 27 Ноя 2013 в 22:05
commandobyДата: Ср, 27 Ноя 2013, 23:53 | Сообщение # 1302
Unity 3D Free
 
Сообщений: 836
Награды: 3
Репутация: 211
Статус: Offline
Цитата seaman ()
Вот здесь по Вашему что вы делаете?-

Здесь я добавляю в массив следующую переменную.

Добавлено (27 Ноя 2013, 23:53)
---------------------------------------------
Цитата seaman ()
Вспомните...

Код
var posMin = Mathf.Min(distanceDown);

No appropriate version of 'UnityEngine.Mathf.Min' for the argument list '(Array)' was found.

Может я пишу неправильно с точки зрения написания?


Блог.

Сообщение отредактировал commandoby - Ср, 27 Ноя 2013, 23:58
 
Сообщение
Цитата seaman ()
Вот здесь по Вашему что вы делаете?-

Здесь я добавляю в массив следующую переменную.

Добавлено (27 Ноя 2013, 23:53)
---------------------------------------------
Цитата seaman ()
Вспомните...

Код
var posMin = Mathf.Min(distanceDown);

No appropriate version of 'UnityEngine.Mathf.Min' for the argument list '(Array)' was found.

Может я пишу неправильно с точки зрения написания?

Автор - commandoby
Дата добавления - 27 Ноя 2013 в 23:53
seamanДата: Чт, 28 Ноя 2013, 00:12 | Сообщение # 1303
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Цитата
Здесь я добавляю в массив следующую переменную.

Это не так. Здесь Вы присваиваете значение последнему элементу массива.
Цитата
Может я пишу неправильно с точки зрения написания?

Бинго! Ну если Вы не изучаете просто само программирование - посмотрите хотя бы нужную функцию в мануале и то как использовать то что там написано.
Используется так:
float min = Mathf.Min(1.2f, 5.3f, 3.2f, 0f); //Тут может быть любое число параметров
 
Сообщение
Цитата
Здесь я добавляю в массив следующую переменную.

Это не так. Здесь Вы присваиваете значение последнему элементу массива.
Цитата
Может я пишу неправильно с точки зрения написания?

Бинго! Ну если Вы не изучаете просто само программирование - посмотрите хотя бы нужную функцию в мануале и то как использовать то что там написано.
Используется так:
float min = Mathf.Min(1.2f, 5.3f, 3.2f, 0f); //Тут может быть любое число параметров

Автор - seaman
Дата добавления - 28 Ноя 2013 в 00:12
commandobyДата: Чт, 28 Ноя 2013, 16:50 | Сообщение # 1304
Unity 3D Free
 
Сообщений: 836
Награды: 3
Репутация: 211
Статус: Offline
Цитата seaman ()
Это не так. Здесь Вы присваиваете значение последнему элементу массива.
Нет. Массив начинается с 0, следовательно размер массива будет на 1 больше, чем последний элемент массива.

Цитата seaman ()
посмотрите хотя бы нужную функцию в мануале и то как использовать то что там написано.
Я смотрел здесь.

Цитата seaman ()
float min = Mathf.Min(1.2f, 5.3f, 3.2f, 0f); //Тут может быть любое число параметров
А как мне это записать для массива с 25 переменными?


Блог.

Сообщение отредактировал commandoby - Чт, 28 Ноя 2013, 16:53
 
Сообщение
Цитата seaman ()
Это не так. Здесь Вы присваиваете значение последнему элементу массива.
Нет. Массив начинается с 0, следовательно размер массива будет на 1 больше, чем последний элемент массива.

Цитата seaman ()
посмотрите хотя бы нужную функцию в мануале и то как использовать то что там написано.
Я смотрел здесь.

Цитата seaman ()
float min = Mathf.Min(1.2f, 5.3f, 3.2f, 0f); //Тут может быть любое число параметров
А как мне это записать для массива с 25 переменными?

Автор - commandoby
Дата добавления - 28 Ноя 2013 в 16:50
seamanДата: Чт, 28 Ноя 2013, 18:00 | Сообщение # 1305
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Цитата
Нет. Массив начинается с 0, следовательно размер массива будет на 1 больше, чем последний элемент массива.

Т.е. вы сознает, что тут у Вас ошибка - попытка записи за пределами массива?
Цитата
А как мне это записать для массива с 25 переменными?

Ага. Тут я сам невнимательно прочитал. Можно и так на JS. Все отлично работает.
Код
var tt: float[] = new float[25];
... //заполняем массив
var min : float = Mathf.Min(tt);
 
Сообщение
Цитата
Нет. Массив начинается с 0, следовательно размер массива будет на 1 больше, чем последний элемент массива.

Т.е. вы сознает, что тут у Вас ошибка - попытка записи за пределами массива?
Цитата
А как мне это записать для массива с 25 переменными?

Ага. Тут я сам невнимательно прочитал. Можно и так на JS. Все отлично работает.
Код
var tt: float[] = new float[25];
... //заполняем массив
var min : float = Mathf.Min(tt);

Автор - seaman
Дата добавления - 28 Ноя 2013 в 18:00
HunjethДата: Чт, 28 Ноя 2013, 18:22 | Сообщение # 1306
 
Сообщений: 354
Награды: 1
Репутация: 112
Статус: Offline
commandoby,
так и должно писать = 0
так как :
distanceDown.clear();

а теперь список = 0 и ты пытаешся установить значение в не границ массива (out of bounds of array).
Код
distanceDown[distanceDown.length] = Vector3.Distance(transform.position+Vector3(pos[xDown],0.29,pos[yDown]), hitDown.point);


я так понял ты используешь List.<T>
тогда пиши :
Код
distanceDown.Add(Vector3.Distance(transform.position+Vector3(pos[xDown],0.29,pos[yDown]), hitDown.point));


и тут тоже самое
Код
if (xDURL<0.598) { positionDULR[positionDULR.lenght] = xDURL; positionDULRVector3[positionDULR.lenght] = Vector3(0,1,0); }

а должно быть
Код
if (xDURL<0.598) { positionDULR[positionDULR.lenght - 1] = xDURL; positionDULRVector3[positionDULR.lenght - 1] = Vector3(0,1,0); }


Сообщение отредактировал Hunjeth - Чт, 28 Ноя 2013, 18:54
 
Сообщениеcommandoby,
так и должно писать = 0
так как :
distanceDown.clear();

а теперь список = 0 и ты пытаешся установить значение в не границ массива (out of bounds of array).
Код
distanceDown[distanceDown.length] = Vector3.Distance(transform.position+Vector3(pos[xDown],0.29,pos[yDown]), hitDown.point);


я так понял ты используешь List.<T>
тогда пиши :
Код
distanceDown.Add(Vector3.Distance(transform.position+Vector3(pos[xDown],0.29,pos[yDown]), hitDown.point));


и тут тоже самое
Код
if (xDURL<0.598) { positionDULR[positionDULR.lenght] = xDURL; positionDULRVector3[positionDULR.lenght] = Vector3(0,1,0); }

а должно быть
Код
if (xDURL<0.598) { positionDULR[positionDULR.lenght - 1] = xDURL; positionDULRVector3[positionDULR.lenght - 1] = Vector3(0,1,0); }

Автор - Hunjeth
Дата добавления - 28 Ноя 2013 в 18:22
commandobyДата: Вс, 01 Дек 2013, 12:18 | Сообщение # 1307
Unity 3D Free
 
Сообщений: 836
Награды: 3
Репутация: 211
Статус: Offline
Всем спасибо. Я осознал свои ошибки, хотя установка значения вне границ массива до этого работала нормально. Сейчас скрипт выглядит так и ошибок невыдаёт:
Код
var distanceDown : float[] = new float[25];

function Update () {
var downInt : int = 0;
for(var xDown = 0; xDown < 5; xDown++) {
for(var yDown = 0; yDown < 5; yDown++) {
var hitDown : RaycastHit;
Physics.Raycast (transform.position+Vector3(pos[xDown],0.29,pos[yDown]), Vector3.down, hitDown, 10.0);
distanceDown[downInt] = Vector3.Distance(transform.position+Vector3(pos[xDown],0.29,pos[yDown]), hitDown.point);
downInt++;
}}
var posMin = Mathf.Min(distanceDown);
}


Блог.
 
СообщениеВсем спасибо. Я осознал свои ошибки, хотя установка значения вне границ массива до этого работала нормально. Сейчас скрипт выглядит так и ошибок невыдаёт:
Код
var distanceDown : float[] = new float[25];

function Update () {
var downInt : int = 0;
for(var xDown = 0; xDown < 5; xDown++) {
for(var yDown = 0; yDown < 5; yDown++) {
var hitDown : RaycastHit;
Physics.Raycast (transform.position+Vector3(pos[xDown],0.29,pos[yDown]), Vector3.down, hitDown, 10.0);
distanceDown[downInt] = Vector3.Distance(transform.position+Vector3(pos[xDown],0.29,pos[yDown]), hitDown.point);
downInt++;
}}
var posMin = Mathf.Min(distanceDown);
}

Автор - commandoby
Дата добавления - 01 Дек 2013 в 12:18
игнатДата: Вс, 01 Дек 2013, 20:27 | Сообщение # 1308
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
I need help! Как "подсоединить" скрипт к другому скрипту, то есть "вызвать его новый экземпляр || создать" внутри др. скрипта, получив доступ к самим функциям и компонентам "создаваемого" скрипта?


Правила форума · участник GCC
 
СообщениеI need help! Как "подсоединить" скрипт к другому скрипту, то есть "вызвать его новый экземпляр || создать" внутри др. скрипта, получив доступ к самим функциям и компонентам "создаваемого" скрипта?

Автор - игнат
Дата добавления - 01 Дек 2013 в 20:27
AligatorДата: Пн, 02 Дек 2013, 22:59 | Сообщение # 1309
Нет аватара
 
Сообщений: 2
Награды: 0
Репутация: 0
Статус: Offline
Ребята прошу помощи, уже голову сломал, читая разные варианты решения ошибок, не могу понять почему не прогоняет код в строках 67-70
Вот код ошибки, но в зависимости от того,что меняю я в этой строке скобки на [] ошибка меняется с
Assets/Scripts/Skidmarks/Scripts/Skidmarks.cs(70,40): error CS1955: The member `Skidmarks.MarkSection.Cross' cannot be used as method or delegate
на Assets/Scripts/Skidmarks/Scripts/Skidmarks.cs(70,40): error CS1501: No overload for method `this' takes `2' arguments
и дальше я в ступоре...
Код
using UnityEngine;
using System.Collections;

public class Skidmarks : MonoBehaviour {

  /////////
  // Skidmarks.cs
  //
  // This script controlles the skidmarks for the car. It registers the position, normal etc. of all the small sections of
  // the skidmarks that combined makes up the entire skidmark mesh.
  // A new mesh is auto generated whenever the skidmarks change.
   
  public int maxMarks = 1024;   // Maximum number of marks total handled by one instance of the script.
  public float markWidth = 0.275f;  // The width of the skidmarks. Should match the width of the wheel that it is used for. In meters.
  public float groundOffset = 0.02f;    // The distance the skidmarks is places above the surface it is placed upon. In meters.
  public float minDistance = 0.1f;  // The minimum distance between two marks places next to each other.  
   
  int indexShift;
  int numMarks = 0;
   
  // Variables for each mark created. Needed to generate the correct mesh.
  class MarkSection{
   public Vector3 pos = Vector3.zero;
   public Vector3 normal = Vector3.zero;
   public Vector4 tangent = Vector4.zero;
   public Vector3 posl = Vector3.zero;
   public Vector3 posr = Vector3.zero;
   public float intensity = 0.0f;
   public int lastIndex = 0;
   public Vector3 Cross = Vector3.zero;
   //private Vector3 lhs = 0;
   //private Vector3 rhs = 0;
  };
   
  private MarkSection[] skidmarks;
   
  private bool updated = true;
   
  // Initiallizes the array holding the skidmark sections.
  void Awake()
  {
   skidmarks = new MarkSection[maxMarks];
   for (int i = 0; i < maxMarks; i++)
    skidmarks[i] = new MarkSection();
   if (((MeshFilter) GetComponent (typeof(MeshFilter))).mesh == null)
    ((MeshFilter) GetComponent (typeof(MeshFilter))).mesh = new Mesh();
  }
  public Transform newTextMesh ;
  // Function called by the wheels that is skidding. Gathers all the information needed to
  // create the mesh later. Sets the intensity of the skidmark section b setting the alpha
  // of the vertex color.
  public int AddSkidMark(Vector3 pos, Vector3  normal, float intensity, int lastIndex)

  {
   if(intensity > 1)
    intensity = 1.0f;
   if(intensity < 0)
    return -1;
   var Vector3 = skidmarks[numMarks % maxMarks];
   Vector3.pos = pos + normal * groundOffset;
   Vector3.normal = normal;
   Vector3.intensity = intensity;
   Vector3.lastIndex = lastIndex;
   
   if(lastIndex != -1)
   {
    var last = skidmarks[lastIndex % maxMarks];
    Vector3 dir  = (Vector3.pos - last.pos);
    Vector3 xDir  = (Vector3.normal - last.pos);
    return Vector3.Cross(dir,xDir).normalized;
     
    Vector3.posl = Vector3.pos + xDir * markWidth * 0.5f;
    Vector3.posr = Vector3.pos - xDir * markWidth * 0.5f;
    Vector3.tangent = new Vector4(xDir.x, xDir.y, xDir.z, 1);
     
    if(last.lastIndex == -1)
    {
     last.tangent = Vector3.tangent;
     last.posl = Vector3.pos + xDir * markWidth * 0.5f;
     last.posr = Vector3.pos - xDir * markWidth * 0.5f;
    }
   }
   numMarks++;
   updated = true;
   return numMarks -1;
  }
  // If the mesh needs to be updated, i.e. a new section has been added,
  // the current mesh is removed, and a new mesh for the skidmarks is generated.
  void LateUpdate()
  {
   if(!updated)
   {
    return;
   }
   updated = false;
    
   Mesh mesh = ((MeshFilter) GetComponent (typeof(MeshFilter))).mesh;
   mesh.Clear();
   int segmentCount = 0;
   for(int j = 0; j < numMarks && j < maxMarks; j++)
    if(skidmarks[j].lastIndex != -1 && skidmarks[j].lastIndex > numMarks - maxMarks)
     segmentCount++;
    
   Vector3[] vertices = new Vector3[segmentCount * 4];
   Vector3[] normals = new Vector3[segmentCount * 4];
   Vector4[] tangents = new Vector4[segmentCount * 4];
   Color[] colors = new Color[segmentCount * 4];
   Vector2[] uvs = new Vector2[segmentCount * 4];
   int[] triangles = new int[segmentCount * 6];
   segmentCount = 0;
   for(int i = 0; i < numMarks && i < maxMarks; i++)
    if(skidmarks[i].lastIndex != -1 && skidmarks[i].lastIndex > numMarks - maxMarks)
    {
     MarkSection curr = skidmarks[i];
     MarkSection last = skidmarks[curr.lastIndex % maxMarks];
     vertices[segmentCount * 4 + 0] = last.posl;
     vertices[segmentCount * 4 + 1] = last.posr;
     vertices[segmentCount * 4 + 2] = curr.posl;
     vertices[segmentCount * 4 + 3] = curr.posr;
      
     normals[segmentCount * 4 + 0] = last.normal;
     normals[segmentCount * 4 + 1] = last.normal;
     normals[segmentCount * 4 + 2] = curr.normal;
     normals[segmentCount * 4 + 3] = curr.normal;
   
     tangents[segmentCount * 4 + 0] = last.tangent;
     tangents[segmentCount * 4 + 1] = last.tangent;
     tangents[segmentCount * 4 + 2] = curr.tangent;
     tangents[segmentCount * 4 + 3] = curr.tangent;
      
     colors[segmentCount * 4 + 0]=new Color(0, 0, 0, last.intensity);
     colors[segmentCount * 4 + 1]=new Color(0, 0, 0, last.intensity);
     colors[segmentCount * 4 + 2]=new Color(0, 0, 0, curr.intensity);
     colors[segmentCount * 4 + 3]=new Color(0, 0, 0, curr.intensity);
   
     uvs[segmentCount * 4 + 0] = new Vector2(0, 0);
     uvs[segmentCount * 4 + 1] = new Vector2(1, 0);
     uvs[segmentCount * 4 + 2] = new Vector2(0, 1);
     uvs[segmentCount * 4 + 3] = new Vector2(1, 1);
      
     triangles[segmentCount * 6 + 0] = segmentCount * 4 + 0;
     triangles[segmentCount * 6 + 2] = segmentCount * 4 + 1;
     triangles[segmentCount * 6 + 1] = segmentCount * 4 + 2;
      
     triangles[segmentCount * 6 + 3] = segmentCount * 4 + 2;
     triangles[segmentCount * 6 + 5] = segmentCount * 4 + 1;
     triangles[segmentCount * 6 + 4] = segmentCount * 4 + 3;
     segmentCount++;    
    }
   mesh.vertices=vertices;
   mesh.normals=normals;
   mesh.tangents=tangents;
   mesh.triangles=triangles;
   mesh.colors=colors;
   mesh.uv=uvs;
  }

}
 
СообщениеРебята прошу помощи, уже голову сломал, читая разные варианты решения ошибок, не могу понять почему не прогоняет код в строках 67-70
Вот код ошибки, но в зависимости от того,что меняю я в этой строке скобки на [] ошибка меняется с
Assets/Scripts/Skidmarks/Scripts/Skidmarks.cs(70,40): error CS1955: The member `Skidmarks.MarkSection.Cross' cannot be used as method or delegate
на Assets/Scripts/Skidmarks/Scripts/Skidmarks.cs(70,40): error CS1501: No overload for method `this' takes `2' arguments
и дальше я в ступоре...
Код
using UnityEngine;
using System.Collections;

public class Skidmarks : MonoBehaviour {

  /////////
  // Skidmarks.cs
  //
  // This script controlles the skidmarks for the car. It registers the position, normal etc. of all the small sections of
  // the skidmarks that combined makes up the entire skidmark mesh.
  // A new mesh is auto generated whenever the skidmarks change.
   
  public int maxMarks = 1024;   // Maximum number of marks total handled by one instance of the script.
  public float markWidth = 0.275f;  // The width of the skidmarks. Should match the width of the wheel that it is used for. In meters.
  public float groundOffset = 0.02f;    // The distance the skidmarks is places above the surface it is placed upon. In meters.
  public float minDistance = 0.1f;  // The minimum distance between two marks places next to each other.  
   
  int indexShift;
  int numMarks = 0;
   
  // Variables for each mark created. Needed to generate the correct mesh.
  class MarkSection{
   public Vector3 pos = Vector3.zero;
   public Vector3 normal = Vector3.zero;
   public Vector4 tangent = Vector4.zero;
   public Vector3 posl = Vector3.zero;
   public Vector3 posr = Vector3.zero;
   public float intensity = 0.0f;
   public int lastIndex = 0;
   public Vector3 Cross = Vector3.zero;
   //private Vector3 lhs = 0;
   //private Vector3 rhs = 0;
  };
   
  private MarkSection[] skidmarks;
   
  private bool updated = true;
   
  // Initiallizes the array holding the skidmark sections.
  void Awake()
  {
   skidmarks = new MarkSection[maxMarks];
   for (int i = 0; i < maxMarks; i++)
    skidmarks[i] = new MarkSection();
   if (((MeshFilter) GetComponent (typeof(MeshFilter))).mesh == null)
    ((MeshFilter) GetComponent (typeof(MeshFilter))).mesh = new Mesh();
  }
  public Transform newTextMesh ;
  // Function called by the wheels that is skidding. Gathers all the information needed to
  // create the mesh later. Sets the intensity of the skidmark section b setting the alpha
  // of the vertex color.
  public int AddSkidMark(Vector3 pos, Vector3  normal, float intensity, int lastIndex)

  {
   if(intensity > 1)
    intensity = 1.0f;
   if(intensity < 0)
    return -1;
   var Vector3 = skidmarks[numMarks % maxMarks];
   Vector3.pos = pos + normal * groundOffset;
   Vector3.normal = normal;
   Vector3.intensity = intensity;
   Vector3.lastIndex = lastIndex;
   
   if(lastIndex != -1)
   {
    var last = skidmarks[lastIndex % maxMarks];
    Vector3 dir  = (Vector3.pos - last.pos);
    Vector3 xDir  = (Vector3.normal - last.pos);
    return Vector3.Cross(dir,xDir).normalized;
     
    Vector3.posl = Vector3.pos + xDir * markWidth * 0.5f;
    Vector3.posr = Vector3.pos - xDir * markWidth * 0.5f;
    Vector3.tangent = new Vector4(xDir.x, xDir.y, xDir.z, 1);
     
    if(last.lastIndex == -1)
    {
     last.tangent = Vector3.tangent;
     last.posl = Vector3.pos + xDir * markWidth * 0.5f;
     last.posr = Vector3.pos - xDir * markWidth * 0.5f;
    }
   }
   numMarks++;
   updated = true;
   return numMarks -1;
  }
  // If the mesh needs to be updated, i.e. a new section has been added,
  // the current mesh is removed, and a new mesh for the skidmarks is generated.
  void LateUpdate()
  {
   if(!updated)
   {
    return;
   }
   updated = false;
    
   Mesh mesh = ((MeshFilter) GetComponent (typeof(MeshFilter))).mesh;
   mesh.Clear();
   int segmentCount = 0;
   for(int j = 0; j < numMarks && j < maxMarks; j++)
    if(skidmarks[j].lastIndex != -1 && skidmarks[j].lastIndex > numMarks - maxMarks)
     segmentCount++;
    
   Vector3[] vertices = new Vector3[segmentCount * 4];
   Vector3[] normals = new Vector3[segmentCount * 4];
   Vector4[] tangents = new Vector4[segmentCount * 4];
   Color[] colors = new Color[segmentCount * 4];
   Vector2[] uvs = new Vector2[segmentCount * 4];
   int[] triangles = new int[segmentCount * 6];
   segmentCount = 0;
   for(int i = 0; i < numMarks && i < maxMarks; i++)
    if(skidmarks[i].lastIndex != -1 && skidmarks[i].lastIndex > numMarks - maxMarks)
    {
     MarkSection curr = skidmarks[i];
     MarkSection last = skidmarks[curr.lastIndex % maxMarks];
     vertices[segmentCount * 4 + 0] = last.posl;
     vertices[segmentCount * 4 + 1] = last.posr;
     vertices[segmentCount * 4 + 2] = curr.posl;
     vertices[segmentCount * 4 + 3] = curr.posr;
      
     normals[segmentCount * 4 + 0] = last.normal;
     normals[segmentCount * 4 + 1] = last.normal;
     normals[segmentCount * 4 + 2] = curr.normal;
     normals[segmentCount * 4 + 3] = curr.normal;
   
     tangents[segmentCount * 4 + 0] = last.tangent;
     tangents[segmentCount * 4 + 1] = last.tangent;
     tangents[segmentCount * 4 + 2] = curr.tangent;
     tangents[segmentCount * 4 + 3] = curr.tangent;
      
     colors[segmentCount * 4 + 0]=new Color(0, 0, 0, last.intensity);
     colors[segmentCount * 4 + 1]=new Color(0, 0, 0, last.intensity);
     colors[segmentCount * 4 + 2]=new Color(0, 0, 0, curr.intensity);
     colors[segmentCount * 4 + 3]=new Color(0, 0, 0, curr.intensity);
   
     uvs[segmentCount * 4 + 0] = new Vector2(0, 0);
     uvs[segmentCount * 4 + 1] = new Vector2(1, 0);
     uvs[segmentCount * 4 + 2] = new Vector2(0, 1);
     uvs[segmentCount * 4 + 3] = new Vector2(1, 1);
      
     triangles[segmentCount * 6 + 0] = segmentCount * 4 + 0;
     triangles[segmentCount * 6 + 2] = segmentCount * 4 + 1;
     triangles[segmentCount * 6 + 1] = segmentCount * 4 + 2;
      
     triangles[segmentCount * 6 + 3] = segmentCount * 4 + 2;
     triangles[segmentCount * 6 + 5] = segmentCount * 4 + 1;
     triangles[segmentCount * 6 + 4] = segmentCount * 4 + 3;
     segmentCount++;    
    }
   mesh.vertices=vertices;
   mesh.normals=normals;
   mesh.tangents=tangents;
   mesh.triangles=triangles;
   mesh.colors=colors;
   mesh.uv=uvs;
  }

}

Автор - Aligator
Дата добавления - 02 Дек 2013 в 22:59
seamanДата: Пн, 02 Дек 2013, 23:23 | Сообщение # 1310
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Цитата
I need help! Как "подсоединить" скрипт к другому скрипту, то есть "вызвать его новый экземпляр || создать" внутри др. скрипта, получив доступ к самим функциям и компонентам "создаваемого" скрипта?

Скрипт - наследник MonoBehaviour?
1. Да - добавляем на объект AddComponent? получаем с объекта GetComponent
2. Нет - Создаем экземпляр new ... и запоминаем ссылку на него.
2Aligator
Цитата
и дальше я в ступоре...

А нефиг называть свои переменные также как стандартные функции (Cross)
Цитата
меняю я в этой строке скобки на []

Похоже Вы просто совершенно не понимаете что делаете. Может вставить сюда какой-то китайский иероглиф вместо скобок поможет?

PS^ вообще код у Вас работать не будет как Вы задумывали даже если Вы с этой ошибкой разберетесь.
 
Сообщение
Цитата
I need help! Как "подсоединить" скрипт к другому скрипту, то есть "вызвать его новый экземпляр || создать" внутри др. скрипта, получив доступ к самим функциям и компонентам "создаваемого" скрипта?

Скрипт - наследник MonoBehaviour?
1. Да - добавляем на объект AddComponent? получаем с объекта GetComponent
2. Нет - Создаем экземпляр new ... и запоминаем ссылку на него.
2Aligator
Цитата
и дальше я в ступоре...

А нефиг называть свои переменные также как стандартные функции (Cross)
Цитата
меняю я в этой строке скобки на []

Похоже Вы просто совершенно не понимаете что делаете. Может вставить сюда какой-то китайский иероглиф вместо скобок поможет?

PS^ вообще код у Вас работать не будет как Вы задумывали даже если Вы с этой ошибкой разберетесь.

Автор - seaman
Дата добавления - 02 Дек 2013 в 23:23
AligatorДата: Вт, 03 Дек 2013, 16:02 | Сообщение # 1311
Нет аватара
 
Сообщений: 2
Награды: 0
Репутация: 0
Статус: Offline
Цитата seaman ()
2Aligator Цитатаи дальше я в ступоре... А нефиг называть свои переменные также как стандартные функции (Cross) Цитатаменяю я в этой строке скобки на [] Похоже Вы просто совершенно не понимаете что делаете. Может вставить сюда какой-то китайский иероглиф вместо скобок поможет? PS^ вообще код у Вас работать не будет как Вы задумывали даже если Вы с этой ошибкой разберетесь.

Да я не очень понимаю что в этом коде происходит, но работать он наполовину работает. И я пытался запустить стандартную функцию Cross, но то она ругается на то, что функция не опознана, то еще на что, в общем из-за этого и не понимаю. А так это не мой код, это кто-то попытался конвертировать с js на c#, но не довёл дело до ума и выложил в инете, и все этим пользуются...
 
Сообщение
Цитата seaman ()
2Aligator Цитатаи дальше я в ступоре... А нефиг называть свои переменные также как стандартные функции (Cross) Цитатаменяю я в этой строке скобки на [] Похоже Вы просто совершенно не понимаете что делаете. Может вставить сюда какой-то китайский иероглиф вместо скобок поможет? PS^ вообще код у Вас работать не будет как Вы задумывали даже если Вы с этой ошибкой разберетесь.

Да я не очень понимаю что в этом коде происходит, но работать он наполовину работает. И я пытался запустить стандартную функцию Cross, но то она ругается на то, что функция не опознана, то еще на что, в общем из-за этого и не понимаю. А так это не мой код, это кто-то попытался конвертировать с js на c#, но не довёл дело до ума и выложил в инете, и все этим пользуются...

Автор - Aligator
Дата добавления - 03 Дек 2013 в 16:02
игнатДата: Ср, 08 Янв 2014, 14:47 | Сообщение # 1312
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Что это?


Правила форума · участник GCC
 
СообщениеЧто это?

Автор - игнат
Дата добавления - 08 Янв 2014 в 14:47
игнатДата: Сб, 15 Фев 2014, 12:13 | Сообщение # 1313
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Нельзя писать ночью:
Код
MyWindow window = EditorWindow.GetWindowWithRect(typeof (MyWindow), Rect(0,0, 200,200), true, "Window editor");

Что здесь не так?



Правила форума · участник GCC
 
СообщениеНельзя писать ночью:
Код
MyWindow window = EditorWindow.GetWindowWithRect(typeof (MyWindow), Rect(0,0, 200,200), true, "Window editor");

Что здесь не так?

Автор - игнат
Дата добавления - 15 Фев 2014 в 12:13
seamanДата: Вс, 16 Фев 2014, 21:20 | Сообщение # 1314
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
MyWindow определен?
Вроде все так. Полный скрипт приведи.
Попробуй привести тип:
Код
MyWindow window = (MyWindow)EditorWindow.GetWindowWithRect(typeof (MyWindow), Rect(0,0, 200,200), true, "Window editor");
 
СообщениеMyWindow определен?
Вроде все так. Полный скрипт приведи.
Попробуй привести тип:
Код
MyWindow window = (MyWindow)EditorWindow.GetWindowWithRect(typeof (MyWindow), Rect(0,0, 200,200), true, "Window editor");

Автор - seaman
Дата добавления - 16 Фев 2014 в 21:20
игнатДата: Вс, 16 Фев 2014, 23:20 | Сообщение # 1315
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Я тогда перепробовал вообще всё возможное, но эффекта нет. Попробую с новым скриптом, хотя в настоящем ничего, что могло бы вызвать ошибку, нет - всё проверенно.


Правила форума · участник GCC
 
СообщениеЯ тогда перепробовал вообще всё возможное, но эффекта нет. Попробую с новым скриптом, хотя в настоящем ничего, что могло бы вызвать ошибку, нет - всё проверенно.

Автор - игнат
Дата добавления - 16 Фев 2014 в 23:20
игнатДата: Вс, 02 Мар 2014, 13:02 | Сообщение # 1316
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Вопрос: как удалить последний элемент в string.


Правила форума · участник GCC
 
СообщениеВопрос: как удалить последний элемент в string.

Автор - игнат
Дата добавления - 02 Мар 2014 в 13:02
игнатДата: Вс, 02 Мар 2014, 13:17 | Сообщение # 1317
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Цитата игнат ()
Вопрос, касаясь этой темы: есть метод Application.LoadLevelAsync, у него есть переменная isDone, но вот как можно не автоматически загружать сцену после окончания метода? Надо сделать так, чтобы сцена загрузилась, но не включалась.

Up



Правила форума · участник GCC
 
Сообщение
Цитата игнат ()
Вопрос, касаясь этой темы: есть метод Application.LoadLevelAsync, у него есть переменная isDone, но вот как можно не автоматически загружать сцену после окончания метода? Надо сделать так, чтобы сцена загрузилась, но не включалась.

Up

Автор - игнат
Дата добавления - 02 Мар 2014 в 13:17
seamanДата: Вс, 02 Мар 2014, 15:52 | Сообщение # 1318
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Цитата
как удалить последний элемент в string.

Почитать msdn - сразу все станет проще.
 
Сообщение
Цитата
как удалить последний элемент в string.

Почитать msdn - сразу все станет проще.

Автор - seaman
Дата добавления - 02 Мар 2014 в 15:52
игнатДата: Вс, 02 Мар 2014, 17:00 | Сообщение # 1319
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Всё - надо начинать этот сайт изучать. А со вторым что?


Правила форума · участник GCC
 
СообщениеВсё - надо начинать этот сайт изучать. А со вторым что?

Автор - игнат
Дата добавления - 02 Мар 2014 в 17:00
seamanДата: Вс, 02 Мар 2014, 18:11 | Сообщение # 1320
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Имхо - загружать сцену по Application.LoadLevelAdditiveAsync. Когда надо - включать все скрипты в загруженной части и выгружать все что стало ненужным.
Или использовать бандлы.
 
СообщениеИмхо - загружать сцену по Application.LoadLevelAdditiveAsync. Когда надо - включать все скрипты в загруженной части и выгружать все что стало ненужным.
Или использовать бандлы.

Автор - seaman
Дата добавления - 02 Мар 2014 в 18:11
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025