// Update is called once per frame void Update() { Vector2 delta = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical")); delta = delta.magnitude > 1 ? delta.normalized : delta; transform.localPosition += new Vector3(delta.x, delta.y, 0) * speed; if (Input.GetButtonDown("Boo")) { boo(); } if (Input.GetButtonDown("Hide")) { Color temp = GetComponent <SpriteRenderer>().color; GetComponent <SpriteRenderer>().color = new Color(temp.r, temp.g, temp.b, 50); hidden = true; } if (Input.GetButtonUp("Hide")) { Color temp = GetComponent <SpriteRenderer>().color; GetComponent <SpriteRenderer>().color = new Color(temp.r, temp.g, temp.b, 255); hidden = false; } hauntables.Sort(delegate(GameObject a, GameObject b) { return(Vector2.Distance(this.transform.position, a.transform.position) .CompareTo( Vector2.Distance(this.transform.position, b.transform.position))); }); hauntables[0].GetComponent <HauntableObject>().isHighlighted = true; foreach (GameObject i in hauntables) { HauntableObject obj = i.GetComponent <HauntableObject>(); if (Vector2.Distance(this.transform.position, obj.transform.position) < hauntRange) //5 is arbitrary range, requires ingame testing { obj.GetComponent <HauntableObject>().isHighlighted = true; } else { obj.isHighlighted = false; } } }
/// <summary> /// 附身于某物体 /// </summary> /// <param name="target">附身目标</param> static public void Haunt(HauntableObject target) { currentHauntedObject = target; Num = target.Num; PerformSystem.FocusOn(currentHauntedObject.transform.position.x + currentHauntedObject.cameraX); }