Синтаксис:
Используется javascript
public var speed = 2.5;
public var shield: int = 5;
public var defense: int = 50;
public var hp: int = 3;
public var accuracy: int = 50;
private var flag = 2;
private var f = 0;
private var gop;
private var go;
private var qq : GameObject[];
qq = GameObject.FindGameObjectsWithTag("Planet");
gop = GameObject.Find("GameObject");
function FindClosestEnemy () : GameObject {
// Find all game objects with tag Enemy
var gos1 : GameObject[];
gos1 = GameObject.FindGameObjectsWithTag("Planet");
var closest : GameObject;
var distance = 200;
var position = transform.position;
// Iterate through them and find the closest one
for (var go1 : GameObject in gos1) {
var diff = (go1.transform.position - position);
var curDistance = diff.sqrMagnitude;
if (curDistance < distance) {
closest = go1;
distance = curDistance;
}
}
return closest;
}
function Update()
{
//if (go == null) {go =GameObject.Find("Asteroid");}
if (flag == 2) {
if (f==0) {
go=FindClosestEnemy(); f=1;
}
//----------------------KOCYAK-------------------------------------------------
transform.LookAt(Vector3(go.transform.position.x,go.transform.position.y,go.transform.position.z)); print(go.name);
//NullReferenceException: Object reference not set to an instance of an object
transform.Translate(Vector3.forward * speed* Time.deltaTime);
if (Vector3.Distance(transform.position,go.transform.position) < 1)
{ flag=2; f=0; }
}
if (Vector3.Distance(transform.position,Vector3(0,0,0)) < 3)
{
if (flag!=3) {oldFlag=flag; flag=3;}
};
if (flag==3) {
transform.RotateAround (Vector3.zero, Vector3.up, 8*speed * Time.deltaTime);
transform.Translate(transform.position * 0.1*speed* Time.deltaTime);
if(Vector3.Distance(transform.position,Vector3(0,0,0)) > 5) {flag = oldFlag;}
}
print(flag);
if (flag!=3) { transform.Translate(Vector3.forward * speed* Time.deltaTime); }
if (flag==3) { transform.Translate(Vector3.forward * 0.1*speed* Time.deltaTime);}
//engine control
}
public var shield: int = 5;
public var defense: int = 50;
public var hp: int = 3;
public var accuracy: int = 50;
private var flag = 2;
private var f = 0;
private var gop;
private var go;
private var qq : GameObject[];
qq = GameObject.FindGameObjectsWithTag("Planet");
gop = GameObject.Find("GameObject");
function FindClosestEnemy () : GameObject {
// Find all game objects with tag Enemy
var gos1 : GameObject[];
gos1 = GameObject.FindGameObjectsWithTag("Planet");
var closest : GameObject;
var distance = 200;
var position = transform.position;
// Iterate through them and find the closest one
for (var go1 : GameObject in gos1) {
var diff = (go1.transform.position - position);
var curDistance = diff.sqrMagnitude;
if (curDistance < distance) {
closest = go1;
distance = curDistance;
}
}
return closest;
}
function Update()
{
//if (go == null) {go =GameObject.Find("Asteroid");}
if (flag == 2) {
if (f==0) {
go=FindClosestEnemy(); f=1;
}
//----------------------KOCYAK-------------------------------------------------
transform.LookAt(Vector3(go.transform.position.x,go.transform.position.y,go.transform.position.z)); print(go.name);
//NullReferenceException: Object reference not set to an instance of an object
transform.Translate(Vector3.forward * speed* Time.deltaTime);
if (Vector3.Distance(transform.position,go.transform.position) < 1)
{ flag=2; f=0; }
}
if (Vector3.Distance(transform.position,Vector3(0,0,0)) < 3)
{
if (flag!=3) {oldFlag=flag; flag=3;}
};
if (flag==3) {
transform.RotateAround (Vector3.zero, Vector3.up, 8*speed * Time.deltaTime);
transform.Translate(transform.position * 0.1*speed* Time.deltaTime);
if(Vector3.Distance(transform.position,Vector3(0,0,0)) > 5) {flag = oldFlag;}
}
print(flag);
if (flag!=3) { transform.Translate(Vector3.forward * speed* Time.deltaTime); }
if (flag==3) { transform.Translate(Vector3.forward * 0.1*speed* Time.deltaTime);}
//engine control
}
По идее код должен возвращать имя объекта, разворачивать туда меш и отправлять его туда... print(name) утверждает что объекты генерятся функцией(спертой из мануалов), и возвращает честное имя, но на LookAt он уже говорит, что я ему подсовываю null, меш ведет себя соответственно. Наверно ошибка тупая, но уже день её ищу, попытки заставить код работать уже напоминают рандом и индусизм, такое чувство что он может перепрыгивать через блоки операторов.