// Update is called once per frame void Update() { if (!staticScript.rhythmManager.DynamicRhythm.Tyming) { return; } int CurTyming = (int)staticScript.rhythmManager.DynamicRhythm.Pos; for (int i = 0; i < reserveMarkerDataList.Count; i++) { ReserveMarkerData data = reserveMarkerDataList[i]; if (data.AimingMarker == null && !data.IsSwordEnemy) { data.AimingMarker = AimingMarkerEmit(data); data.AimingMarker.Setting_DefaultScale(); } if (data.Tyming == CurTyming) { Emit(data); List_Remove(i); i--; } } }
public void RemoveFromEnemy(Enemy enemy) { for (int i = 0; i < reserveMarkerDataList.Count; i++) { ReserveMarkerData data = reserveMarkerDataList[i]; if (data.FireEnemy == enemy) { List_Remove(i); i--; } } }
public AimingMarker AimingMarkerEmit(AimingMarker aimingMarker, ReserveMarkerData data) { GameObject tmp = Instantiate(aimingMarker.gameObject, Vector3.zero, Quaternion.identity) as GameObject; AimingMarker markerCompornent = tmp.transform.GetComponent <AimingMarker>(); markerCompornent.MarkerCanvas = canvas.gameObject; tmp.transform.parent = canvas.transform; tmp.transform.localScale = aimingMarker.transform.localScale; markerCompornent.PosOnScreen.x = data.Pos.x; markerCompornent.PosOnScreen.y = data.Pos.y; markerCompornent.data = data; markerCompornent.SettingPos(); return(markerCompornent); }
public AimingMarker AimingMarkerEmit( AimingMarker aimingMarker , ReserveMarkerData data ) { GameObject tmp = Instantiate( aimingMarker .gameObject , Vector3 .zero , Quaternion .identity ) as GameObject; AimingMarker markerCompornent = tmp .transform .GetComponent<AimingMarker>(); markerCompornent .MarkerCanvas = canvas .gameObject; tmp .transform .parent = canvas .transform; tmp .transform .localScale = aimingMarker .transform .localScale; markerCompornent .PosOnScreen .x = data .Pos .x; markerCompornent .PosOnScreen .y = data .Pos .y; markerCompornent .data = data; markerCompornent .SettingPos(); return markerCompornent; }
private bool Entry(Vector2 Pos, int Tyming, GameObject Bullet, Transform FirePoint, Enemy enemy, bool IsSwordEnemy) { int BulletCount = 0; for (int i = 0; i < reserveMarkerDataList.Count; i++) { ReserveMarkerData data = reserveMarkerDataList[i]; if (data.Tyming == Tyming) { BulletCount++; } if (BulletCount >= 1) { return(false); } } //攻撃できそうなら //現在出ているマーカーと重ならないように調整する float Radius = 0.5f; float RadiusSq = Radius * Radius; bool loop = true; int cnt = 0; Vector2 LengthSq; while (loop && cnt < 5 && !IsSwordEnemy) { cnt++; loop = false; foreach (Marker marker in staticScript.markerManager.MarkerList) { LengthSq = Pos - marker.PosOnScreen; if (LengthSq.sqrMagnitude == .0f) { LengthSq = Random.insideUnitCircle * 0.01f; } if (LengthSq.sqrMagnitude < RadiusSq) { LengthSq.Normalize(); Pos = marker.PosOnScreen + LengthSq * Radius; loop = true; } } foreach (ReserveMarkerData data in reserveMarkerDataList) { if (data.IsSwordEnemy) { continue; } LengthSq = Pos - data.Pos; if (LengthSq.sqrMagnitude == .0f) { LengthSq = Random.insideUnitCircle * 0.01f; } if (LengthSq.sqrMagnitude < RadiusSq) { LengthSq.Normalize(); Pos = data.Pos + LengthSq * Radius; loop = true; } } } ReserveMarkerData add = new ReserveMarkerData(); add.Tyming = Tyming; add.Bullet = Bullet; add.FirePoint = FirePoint; add.Pos = Pos; add.FireEnemy = enemy; add.IsSwordEnemy = IsSwordEnemy; reserveMarkerDataList.Add(add); return(true); }
AimingMarker AimingMarkerEmit(ReserveMarkerData data) { return(staticScript.staticMarkerEmitter.AimingMarkerEmit(aimingMarker, data)); }
Marker Emit(ReserveMarkerData data) { return(staticScript.staticMarkerEmitter.Emit(data.Bullet, data.Pos, data.FirePoint.position, data.FireEnemy, data.IsSwordEnemy)); }
private bool Entry(Vector2 Pos , int Tyming,GameObject Bullet, Transform FirePoint, Enemy enemy, bool IsSwordEnemy) { int BulletCount = 0; for (int i = 0;i < reserveMarkerDataList .Count;i++) { ReserveMarkerData data = reserveMarkerDataList[i]; if (data .Tyming == Tyming) BulletCount++; if (BulletCount >= 1) return false; } //攻撃できそうなら //現在出ているマーカーと重ならないように調整する float Radius = 0.5f; float RadiusSq = Radius * Radius; bool loop = true; int cnt = 0; Vector2 LengthSq ; while (loop && cnt < 5 && !IsSwordEnemy) { cnt++; loop = false; foreach (Marker marker in staticScript.markerManager.MarkerList) { LengthSq = Pos - marker .PosOnScreen; if (LengthSq .sqrMagnitude == .0f) { LengthSq = Random .insideUnitCircle * 0.01f; } if(LengthSq.sqrMagnitude <RadiusSq) { LengthSq .Normalize(); Pos =marker .PosOnScreen + LengthSq * Radius; loop = true; } } foreach(ReserveMarkerData data in reserveMarkerDataList) { if (data .IsSwordEnemy) continue; LengthSq = Pos - data .Pos; if (LengthSq .sqrMagnitude == .0f) { LengthSq = Random .insideUnitCircle * 0.01f; } if (LengthSq .sqrMagnitude < RadiusSq) { LengthSq .Normalize(); Pos = data .Pos + LengthSq * Radius; loop = true; } } } ReserveMarkerData add = new ReserveMarkerData(); add.Tyming =Tyming; add .Bullet = Bullet; add .FirePoint = FirePoint; add .Pos = Pos; add .FireEnemy = enemy; add .IsSwordEnemy = IsSwordEnemy; reserveMarkerDataList .Add( add ); return true; }
AimingMarker AimingMarkerEmit( ReserveMarkerData data ) { return staticScript .staticMarkerEmitter .AimingMarkerEmit( aimingMarker , data ); }
Marker Emit(ReserveMarkerData data) { return staticScript .staticMarkerEmitter .Emit( data .Bullet , data .Pos , data .FirePoint.position,data.FireEnemy,data.IsSwordEnemy ); }