private void OnTriggerEnter(Collider other) { // print(other.gameObject.name); if (other.name == "Player") { state = AngleState.Chase; } }
void Attack() { GameObject temp = PhotonNetwork.Instantiate(circle.name, this.transform.position, circle.transform.rotation, 0); state = AngleState.Attack; AngleAni.SetInteger("State", 3); StartCoroutine(DelayAttack(0.01f)); }
public void SpotLightChange(AngleState state) { if (state == AngleState.None) { return; } angleState = state; isChange = true; }
IEnumerator DelayAttack(float t) { yield return(new WaitForSeconds(t)); if (t == 0.5f) { GameObject player = GameObject.Find("Player"); GameObject b = PhotonNetwork.Instantiate(ball.name, this.transform.position + new Vector3(1f, 1.2f, 0.0f), ball.transform.rotation, 0); Vector2 emissionPoint = new Vector2(this.transform.position.x + 1.0f, this.transform.position.y + 1.2f); b.GetComponent <Rigidbody>().AddForce(70.0f * new Vector3(player.transform.position.x - emissionPoint.x, player.transform.position.y - emissionPoint.y, 0.0f)); } state = AngleState.Chase; }
// Use this for initialization void Start() { AngleAni = this.GetComponent <Animator>(); sprd = this.GetComponent <SpriteRenderer>(); rigid = this.GetComponent <Rigidbody> (); state = AngleState.Idle; changeDirectionTimeInterval = Random.Range(5.0f, 10.0f); changeUpDownInterval = Random.Range(4.0f, 8.0f); wanderTimeInterval = Random.Range(3.0f, 5.0f); attackTimeInterval = Random.Range(4.0f, 6.0f); catchTime = Time.time; getTime = catchTime; grabTime = getTime; pickTime = grabTime; }
void Fly(bool wander) { if (wander) { state = AngleState.Wander; } else { state = AngleState.Chase; } if (upDown) { this.transform.position += new Vector3(0.0f, 0.5f * -flySpeed, 0.0f); } else { this.transform.position += new Vector3(0.0f, 0.5f * flySpeed, 0.0f); } }
private void Move(bool wander) { if (wander) { state = AngleState.Wander; AngleAni.SetInteger("State", 1); if (direction) { this.transform.position += new Vector3(0.5f * -moveSpeed, 0, 0.0f); } else { this.transform.position += new Vector3(0.5f * moveSpeed, 0, 0.0f); } } else { state = AngleState.Chase; AngleAni.SetInteger("State", 1); } }
public AbstractState makeState(string stateName, string p1, string p2, string p3, float precision, float grados, string stateType, int posState1, int posState2) { AbstractState aS; AbstractState aS1 = getState(posState1); AbstractState aS2 = getState(posState2); switch (stateType) { case "AND": aS = new AndState(aS1, aS2, stateName); break; case "ANGLE": aS = new AngleState(p1, p3, p2, grados, precision, stateName); break; case "CENTER_X": aS = new CenterStateX(p1, p2, precision, stateName); break; case "CENTER_Y": aS = new CenterStateY(p1, p2, precision, stateName); break; case "CENTER_Z": aS = new CenterStateZ(p1, p2, precision, stateName); break; case "DISTANCE": aS = new DistanceState(p1, p2, precision, stateName); break; case "LEFT": aS = new LeftState(p1, p2, precision, stateName); break; case "OR": aS = new OrState(aS1, aS2, stateName); break; case "OVER": aS = new OverState(p1, p2, precision, stateName); break; case "POSITION": aS = new PositionState(p1, precision, stateName); break; case "RIGHT": aS = new RightState(p1, p2, precision, stateName); break; case "UNDER": aS = new UnderState(p1, p2, precision, stateName); break; default: aS = new InvalidState(stateName); break; } return(aS); }
void Hit() { state = AngleState.Hit; AngleAni.SetInteger("State", 4); StartCoroutine(DelayAttack(0.5f)); }