// 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;
            }
        }
    }
Exemple #2
0
 /// <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);
 }