protected void FireAtPlayer() { if (InvaderManager.I.PlayerObject.GetCurrentHealth > 0 && lastFire < Time.time) { ParticleSystem.EmitParams eparam = new ParticleSystem.EmitParams(); float accuracy = AccuracyBasedOnDifficulty.Evaluate(InvaderManager.GetDifficulty()); Vector2 tVel = InvaderManager.I.PlayerObject.GetVelocity / Time.deltaTime; float tMagn = tVel.magnitude; float delta = tMagn / ProjectileSpeed; Vector2 desPoint = InvaderManager.I.PlayerObject.transform.position; desPoint += (tVel * delta); desPoint += Random.insideUnitCircle * (1f - accuracy) * AccuracyDistance; Vector2 dir = desPoint - new Vector2(transform.position.x, transform.position.y); Debug.DrawRay(desPoint, dir, Color.green, 1f); eparam.velocity = dir.normalized * ProjectileSpeed; eparam.position = transform.position; ParticleSystem.Emit(eparam, 1); lastFire = Time.time + MinFireInterval + Random.Range(0f, 2f); } }
protected bool Aggro() { float dist = 0f; if (!GoHostile(out dist)) { return(false); } else { Vector2 tVel = InvaderManager.I.PlayerObject.GetVelocity / Time.deltaTime; float mySpeed = SpeedBasedOnDifficulty.Evaluate(InvaderManager.GetDifficulty()); float tMagn = tVel.magnitude; float delta = tMagn / mySpeed; Vector2 desPoint = InvaderManager.I.PlayerObject.transform.position; desPoint += (tVel * delta); transform.position = Vector2.MoveTowards(transform.position, desPoint, mySpeed * Time.deltaTime); FireAtPlayer(); return(true); } }
//========================================================================== //コンポーネント参照 private void CRef() { soundManagerSE = GameObject.Find("Manager/SoundManagerSE").GetComponent <SoundManager>(); invaderManager = GameObject.Find("Manager/InvaderManager").GetComponent <InvaderManager>(); spriteRenderer = GetComponent <SpriteRenderer>(); scoreManager = GameObject.Find("Manager/ScoreManager").GetComponent <ScoreManager>(); }
//========================================================================== //コンポーネント参照 private void CRef() { spriteRenderer = GetComponent <SpriteRenderer>(); boxCollider2D = GetComponent <BoxCollider2D>(); invaderManager = GameObject.Find("InvaderManager").GetComponent <InvaderManager>(); scoreManager = GameObject.Find("ScoreManager").GetComponent <ScoreManager>(); soundManagerSE = GameObject.Find("Manager/SoundManagerSE").GetComponent <SoundManager>(); ship = GameObject.Find("Ship").GetComponent <Ship>(); }
void Awake() { if (_instance == null) { _instance = this; } else { Destroy(this); } }
private void Update() { if (!leaving && !InvaderManager.IsInsideBounds(new Vector2(transform.position.x, transform.position.y))) { if (stateMachine != null) { StopCoroutine(stateMachine); } StartCoroutine(LeaveZone()); } }
private void Awake() { if (_instance != null && _instance != this) { Destroy(gameObject); } else { _instance = this; } }
protected bool GoHostile(out float dist) { float difficulty = InvaderManager.GetDifficulty(); dist = Vector2.Distance(InvaderManager.I.PlayerObject.transform.position, transform.position); float aggroDist = AggroBasedOnDifficulty.Evaluate(difficulty); if (InvaderManager.I.PlayerObject.GetCurrentHealth <= 0) { return(false); } return(dist < aggroDist); }
public override void ResetObject() { base.ResetObject(); this.ParticleSystem.transform.SetParent(transform, false); this.ParticleSystem.transform.position = Vector3.zero; leaving = false; myCollision.enabled = false; InvaderManager.RegisterNewInvader(this); if (stateMachine != null) { StopCoroutine(stateMachine); } stateMachine = StartCoroutine(stateUpdate()); }
protected void Roam() { if (Time.time > nextRoamUpdate) { float xBias = InvaderManager.I.PlayerObject.transform.position.x - transform.position.x; xBias = Mathf.Clamp(xBias, -1f, 1f) * 0.4f; Vector2 dir = (Vector2.right * xBias) + Random.insideUnitCircle; dir.y *= 0.3f; // More horizontal movement roamDir = dir.normalized; roamSpeed = SpeedBasedOnDifficulty.Evaluate(InvaderManager.GetDifficulty()) * Random.Range(0.5f, 1f); nextRoamUpdate = Time.time + Random.Range(0.5f, 4f); } if (FireDistance > Vector3.Distance(InvaderManager.I.PlayerObject.transform.position, transform.position)) { FireAtPlayer(); } curRoamDir = Vector3.RotateTowards(curRoamDir, roamDir, 2f * Time.deltaTime, 4f * Time.deltaTime); transform.position = Vector2.MoveTowards(transform.position, new Vector2(transform.position.x, transform.position.y) + curRoamDir, roamSpeed * Time.deltaTime); }
protected void OnCreate() { invaderManager = GameObject.Find("InvaderManager").GetComponent <InvaderManager>(); }
// Use this for initialization void Start() { minX = Camera.main.ScreenToWorldPoint(new Vector3(0, 0, 0)).x; maxX = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width, 0, 0)).x; renderer = GetComponent<SpriteRenderer>(); spriteColorR = 255; spriteColorG = 255; spriteColorB = 255; transform.position = new Vector3(transform.position.x, transform.position.y, 0); nextPosition = transform.position; spawnManager = SpawnManager.instance; invaderManager = InvaderManager.instance; }
//========================================================================== //コンポーネント参照 private void CRef() { score_Canv = GameObject.Find("Canvas/Score"); time_Canv = GameObject.Find("Canvas/Time"); invaderManager = GameObject.Find("InvaderManager").GetComponent <InvaderManager>(); }
private void Awake() { I = this; invaders = new List <Invader>(); }
//========================================================================== //コンポーネント参照 private void CRef() { image = GetComponent <Image>(); text = transform.Find("Text").GetComponent <Text>(); invaderManager = GameObject.Find("Manager/InvaderManager").GetComponent <InvaderManager>(); }
void Awake() { instance = this; }
private void OnDisable() { InvaderManager.RemoveInvader(this); }