一个关于Unity3D实例化的问题

onlylove 2013-10-28 03:46:43
大神们看看这是哪里错了 这是一个太空射击的游戏 我想做一个陨石群 旋转着攻击你的效果
当我写完代码之后运行 发现第一次实例化陨石群他可以旋转着的攻击你 可是当第二次级以上的时候 陨石群路径就变成了一条直线来攻击你了
这个第一次

这是第二次和以上

这是源代码
using UnityEngine;
using System.Collections;

public class Team : MonoBehaviour {


public float minSpeed;
public float maxSpeed;

private float currentSpeed;
private float x,y,z;
private float amtToMove;

private GameObject enenmy1;
private GameObject enenmy2;
private GameObject enenmy3;
private GameObject enenmy4;
private GameObject enenmy5;
private GameObject enenmy6;
private GameObject enenmy7;
private GameObject enenmy8;
private GameObject enenmy9;
private GameObject enenmy10;
private GameObject point1;
private GameObject point2;
private GameObject point3;
private GameObject point4;
private GameObject point5;
private GameObject point6;
private GameObject point7;
private GameObject point8;
private GameObject point9;
private GameObject point10;



void Start () {

enenmy1 = GameObject.Find("Enenmy1");
enenmy2 = GameObject.Find("Enenmy2");
enenmy3 = GameObject.Find("Enenmy3");
enenmy4 = GameObject.Find("Enenmy4");
enenmy5 = GameObject.Find("Enenmy5");
enenmy6 = GameObject.Find("Enenmy6");
enenmy7 = GameObject.Find("Enenmy7");
enenmy8 = GameObject.Find("Enenmy8");
enenmy9 = GameObject.Find("Enenmy9");
enenmy10 = GameObject.Find("Enenmy10");
point1 = GameObject.Find("Point1");
point2 = GameObject.Find("Point2");
point3 = GameObject.Find("Point3");
point4 = GameObject.Find("Point4");
point5 = GameObject.Find("Point5");
point6 = GameObject.Find("Point6");
point7 = GameObject.Find("Point7");
point8 = GameObject.Find("Point8");
point9 = GameObject.Find("Point9");
point10 = GameObject.Find("Point10");

SetRotatenAndSpeed();

}


void Update () {

amtToMove = currentSpeed * Time.deltaTime; //陨石下落
transform.Translate(Vector3.down * amtToMove,Space.World); //Space.World 绝对坐标系

if(transform.position.y < -5.6f){

Player.missed += 10;

Destroy(gameObject);

}

}

public void SetRotatenAndSpeed(){


currentSpeed = Random.Range(minSpeed,maxSpeed);

x = Random.Range(-20.0f,20.0f);

y = 50f;

z = Random.Range(-6.0f,12.0f);

transform.position = new Vector3(x,y,z);

}


public void Rotate1()
{
enenmy1.transform.RotateAround(point1.transform.position,Vector3.up,2.0f);
enenmy2.transform.RotateAround(point2.transform.position,Vector3.up,1.95f);
enenmy3.transform.RotateAround(point3.transform.position,Vector3.up,1.9f);
enenmy4.transform.RotateAround(point4.transform.position,Vector3.up,1.85f);
enenmy5.transform.RotateAround(point5.transform.position,Vector3.up,1.8f);
enenmy6.transform.RotateAround(point6.transform.position,Vector3.up,1.75f);
enenmy7.transform.RotateAround(point7.transform.position,Vector3.up,1.7f);
enenmy8.transform.RotateAround(point8.transform.position,Vector3.up,1.65f);
enenmy9.transform.RotateAround(point9.transform.position,Vector3.up,1.6f);
}


}
...全文
452 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
onlylove 2013-10-28
  • 打赏
  • 举报
回复
没错,就是Rotate1()实现这个旋转攻击的功能,但是 我加到了Update()里和 Start()里面都不行 还是老样子,只出来 一次。
panghuhu250 2013-10-28
  • 打赏
  • 举报
回复
发错版了吧,这应该去java版或game版问。 是Rotate1实现陨石的旋转吗?没看到调用它的代码。

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧