Нанесение урона raycast'ом через RPC [Решено]
Добавлено: 07 янв 2015, 19:56
Доброго времени суток!) В общем, суть проблемы: есть игрок, у него разные части тела представлены триггерами, когда один игрок стреляет в другого (по триггеру, через рейкаст) этот тригер должен терять здоровье и в последствии отключаться. Если этим методом атаковать не игровые объекты (например тупо куб) то все работает прекрасно, но если этот триггер является частью игрока (например на голове, и стрельба идет по голове), то этого триггера вообще как будто нету, т.е. луч как будто идет минуя его, из-за чего это может быть?
Скрипт стрельбы:
скрипт на триггере:
Скрипт стрельбы:
Синтаксис:
Используется csharp
public void Shooting()
{
if (photonView.isMine) {
int damage=10;
RaycastHit hit;
Ray ray= Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit,400))
{
if (hit.transform.tag=="head")
{
hit.transform.GetComponent<PhotonView>().RPC("AddDamage", PhotonTargets.All, damage);
}
}
}
}
{
if (photonView.isMine) {
int damage=10;
RaycastHit hit;
Ray ray= Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit,400))
{
if (hit.transform.tag=="head")
{
hit.transform.GetComponent<PhotonView>().RPC("AddDamage", PhotonTargets.All, damage);
}
}
}
}
скрипт на триггере:
Синтаксис:
Используется csharp
[RPC]
public void AddDamage(int damage)
{
if (photonView.isMine) {
headHp -= damage;
if (headHp <= 0) {
gameObject.SetActive (false);
}
}
}
public void AddDamage(int damage)
{
if (photonView.isMine) {
headHp -= damage;
if (headHp <= 0) {
gameObject.SetActive (false);
}
}
}