private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.CompareTag("PlayerAnchor")) { PlayerAnchor playerAnchor = collision.gameObject.GetComponentInParent <PlayerAnchor>(); //нет смысла кэшировать данные так как игрок сталкнётся с препятствием только 1 раз playerAnchor.Victory(); } }
[SerializeField] private Color changedColor; //цвет после прохождения игрока через объект private void OnCollisionEnter2D(Collision2D collision) //колизия для определения сталкновения игрока с препятствием { if (collision.gameObject.CompareTag("Player")) { PlayerAnchor playerAnchor = collision.gameObject.GetComponentInParent <PlayerAnchor>(); //нет смысла кэшировать данные так как игрок сталкнётся с препятствием только 1 раз playerAnchor.Die(); } }
private static PlayerAnchor playerAnchor; //кэширование данных для всех экземпляров данного класса (игрок долден быть 1) private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.CompareTag("PlayerAnchor")) { playerAnchor = playerAnchor == null?collision.gameObject.GetComponentInParent <PlayerAnchor>() : playerAnchor; playerAnchor.StartMoveCurve(startPoint, controlPoint, endPoint); } }
private static PlayerAnchor playerAnchor; //кэширование данных для всех экземпляров данного класса (игрок долден быть 1) private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.CompareTag("Player") && !isTriggered) { isTriggered = true; playerAnchor = playerAnchor == null?collision.gameObject.GetComponentInParent <PlayerAnchor>() : playerAnchor; playerAnchor.AddCoin(); Destroy(gameObject); } }
void Awake() { GameObject player = GameObject.FindGameObjectWithTag("Player"); playerAnchor_ = player.GetComponent <PlayerAnchor>(); playerTransform_ = player.transform; rigidbody_ = GetComponent <Rigidbody> (); anchorLine_ = GetComponent <LineRenderer> (); audioSource_ = GetComponent <AudioSource>(); isReturning_ = false; audioSource_.Play(); // AudioSourceに初期で入っている音をならす(射出音を想定) }