using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ArrowController : MonoBehaviour {
GameObject player;
// Use this for initialization
void Start () {
this.player = GameObject.Find("player");
}
// Update is called once per frame
void Update () {
transform.Translate(0, -0.1f, 0);
if(transform.position.y < -5.0f) {
Destroy(gameObject);
}
Vector2 p1 = transform.position;
Vector2 p2 = this.player.transform.position;
Vector2 dir = p1 - p2;
float d = dir.magnitude;
float r1 = 5f;
float r2 = 5f;
if(d
Destroy(gameObject);
}
}
}
이제 폭탄이랑 플레이어랑 충돌하는 스크립트 작성 중인데 게임 실행은 되는데 충돌이 안됨
혹시 여기서 문제가 먼지 알수있나요? ㅠㅠ
혹시 여기서 문제가 먼지 알수있나요? ㅠㅠ
지금 이 스크립트가 폭탄을 위한 스크립트인가요?
p2 와 p1 때문에 헷갈리는 부분이 있는데 우선 폭탄을 맞는 플레이어에 태그가 확실하게 설정이 됐는지 확인해주시길 바랍니다.
그리고 폭탄과 플레이어의 거리를 계산하여 터뜨리는 것도 물론 하나의 방법이겠지만 가능하면 콜라다를 적용하시는게 더 좋지 않을까 생각됩니다. 예를들어 Colider.OnTriggerEnter 를 활용하는 방법이 있습니다.
https://docs.unity3d.com/ScriptReference/Collider.OnTriggerEnter.html
유니티로 작성하는 어떤 스크립트든 구글링을 통해 찾는게 우선 첫번째 방법입니다. 예로 'How to make objet destroy if it contacts other object on Unity' 등과 같이 영어로 구글에 입력하면 대부분의 답변이 나와있습니다. 찾아보았음에도 안될 경우 더 질문 남겨주시면 최대한 도와드릴 수 있게 노력해볼게요.
오오 해결됬습니다 ㅋㅋㅋㅋ 위 스크립트에는 player이라 쓰여있는데 게임 내에서는 알고보니 Player 이였네요, 감사합니다 ㅋㅋㅋㅋ 콜라다라는 것도 한번 봐야겠습니다. 감사합니다 ㅎㅎ