Положение единства моей пули не меняется с помощью RayCastHit ⇐ C#

Место общения программистов C#
Anonymous
Положение единства моей пули не меняется с помощью RayCastHit

Сообщение Anonymous »

Я пытаюсь выяснить, что не так с моим кодом. Я просто следую инструкциям здесь, чтобы создать тестовую игру, но по неизвестным причинам мой код не работает. Я следую инструкциям, но думаю, что есть что-то, что действительно не работает, поскольку код, который он пишет, написан на Javascript, а я пишу на C#. конечно, некоторые изменения в переменных. Вот мой код:

Код: Выделить всё

using UnityEngine;
using System.Collections;

public class Ammo : MonoBehaviour {

public float damage;
public float spread;
public float recoil;
public float weight;
public int clip_rounds;
public int ammo;
public Transform sparks;
public float fire_rate;

public shells shell = shells.AP_SHELL;
public enum shells {HEAT, AP_SHELL}

private int mag;
private float fire_delay = 0.0f;

public void FireA() {
RaycastHit hit;

if (Physics.Raycast (transform.position, transform.forward, out hit, Mathf.Infinity)) {
if(hit.transform.gameObject.tag=="Player"){
hit.transform.SendMessage("M_Damage", damage);
sparks.position = hit.point;
}
}

mag--;
}

// Update is called once per frame
void Update () {
switch (shell) {
case shells.AP_SHELL:
if(Input.GetButton("Fire1") && Time.time > fire_delay){
fire_delay = Time.deltaTime + fire_rate;
FireA();
}
break;
case shells.HEAT:
if(Input.GetButtonUp("Fire1") && Time.time > fire_delay) {
fire_delay = Time.deltaTime + fire_rate;
FireA();
}
break;
}
}
}
Я подозреваю, что именно RayCastHit заставляет мой код не работать, хотя я не совсем в этом уверен. Я также пытался изменить Transform.forward на Vector3.forward и т. д., но все равно ничего не меняет. Надеюсь, кто-нибудь сможет мне помочь в этом, поскольку я даже не смогу найти журналы, если с моим кодом что-то не так.

Подробнее здесь: https://stackoverflow.com/questions/246 ... raycasthit

Вернуться в «C#»