// 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); }