override public bool IsHitted(WireControl wire, RaycastHit2D hit) { if (!isdead) { Action(wire, hit); if (bodys.Count > 0) { MushiBody b = bodys[bodys.Count - 1]; bodys.Remove(b); DestroyObject(b.gameObject); } else { DieEffect.SetActive(true); isdead = true; GetComponent <Collider2D> ().enabled = false; StartCoroutine(GameClear()); } return(true); } return(false); }
override public bool IsHitted(WireControl wire, RaycastHit2D hit) { Action(wire, hit); follow.IsHitted(wire, hit); return(true); }
void Start() { rb2d = GetComponent <Rigidbody2D>(); wire1 = transform.GetChild(0).GetComponent <WireControl>(); wire2 = transform.GetChild(1).GetComponent <WireControl>(); PlayerImage = transform.FindChild("PlayerImage").gameObject; }
override public bool IsHitted(WireControl wire, RaycastHit2D hit) { if (CheckHit(wire)) { Grab(wire, hit); Action(wire, hit); return(true); } return(false); }
override public bool IsHitted(WireControl wire, RaycastHit2D hit) { if (playerCtrl.HitWire == null || playerCtrl.HitWire.Target.transform.parent != hit.collider.gameObject.transform) { Grab(wire, hit); Action(wire, hit); return(true); } return(false); }
protected void Action(WireControl wire, RaycastHit2D hit) { param.obj = hit.collider.gameObject; param.self = gameObject; actions.ForEach(a => { ActBase act = ActBase.GetAction(a.type); if (act != null) { param.param = a.param; act.Action(param); } }); }
void Awake() { rb2d = GetComponent <Rigidbody2D>(); WireControl[] wires = transform.GetComponentsInChildren <WireControl>(); wireRight = wires[0]; wireLeft = wires[1]; anim = GetComponent <Animator>(); transform.position = revivePos; stopRadius = GetComponent <CircleCollider2D>().radius *transform.lossyScale.x; }
void Update() { if (isdead) { return; } if (EventSystem.current.currentSelectedGameObject == null) { WireControl freeWire = GetFreeWire(); if (freeWire != null) { if (HitbyMouseDown) { if (Input.GetMouseButtonDown(0)) { freeWire.ShootWire(); } } else { if (Input.GetMouseButtonDown(0)) { freeWire.PrepareShoot(); } else if (Input.GetMouseButtonUp(0)) { freeWire.ShootWire(); } } } return; } if (rb2d.velocity.magnitude > speedLimit) { rb2d.velocity = rb2d.velocity.normalized * speedLimit; } }
public void SetWireDestination(WireControl obj) { if (obj != null) { if (obj == wireRight) { anim.SetTrigger("RightShoot"); } else if (obj == wireLeft) { anim.SetTrigger("LeftShoot"); } hitWire = obj; Vector2 direction = hitWire.Target.transform.position - transform.position; rb2d.velocity += direction.normalized * startSpeed; anim.SetFloat("Velocity", direction.x); anim.SetBool("Stop", false); reached = false; } }
protected bool CheckHit(WireControl wire) { Collider2D c = GetComponent <Collider2D>(); if (c != null) { Vector2 direction = wire.transform.position - wire.Target.transform.position; Vector2 step = direction.normalized * 0.1f; float length = direction.magnitude; Vector2 now = wire.Target.transform.position; while (Vector2.Distance(now, wire.Target.transform.position) <= length) { if (c.OverlapPoint(now)) { return(true); } now += step; } } return(false); }
virtual public bool IsHitted(WireControl wire, RaycastHit2D hit) { Action(wire, hit); return(true); }
protected void Grab(WireControl wire, RaycastHit2D hit) { wire.Target.transform.parent = hit.collider.gameObject.transform; wire.Target.transform.position = hit.point; GameObject.FindObjectOfType <PlayerControl>().SetWireDestination(wire); }