Ejemplo n.º 1
0
 // Start is called before the first frame update
 void Awake()
 {
     _massPos = GameObject.Find("Mass").GetComponent <Bary_MassPos>();
     try
     {
         player = GameObject.Find("Player" + player_id.ToString()).GetComponent <Bary_PlayerPos>();
     }
     catch (NullReferenceException e)
     {
         this.gameObject.SetActive(false);
     }
 }
        // Update is called once per frame
        void Update()
        {
            if (!player)
            {
                try
                {
                    player = GameObject.Find("Player" + player_id.ToString()).GetComponent <Bary_PlayerPos>();
                }
                catch (NullReferenceException e)
                {
                    return;
                }
            }
            float angle = Vector3.SignedAngle(Vector3.right, player.dir.normalized, Vector3.up);

            angle = angle > 0 ? angle + 15 : angle - 15;
            int     steps = (int)(angle / 30);
            Vector3 pos   = RotatePointAroundAxis(Vector3.right, steps * 30f, Vector3.up);

            this.transform.position = pos * 17;
            _massPos.AddPosMass(this.transform.position, mass);
        }