par Apomalyn » lun. 25 août 2014 18:53
Pardon j'ai oublié de vous mettre deux variables --'
Spoiler:
var etincelles : gameObject;
var impact : gameObject;
function tirer(){
peutTirer = false;
networkView.RPC("SyncSon", RPCMode.All);
SendMessageUpwards("Anime", 1);
ballesChargeur --;
var ray : Ray = Camera.main.ScreenPointToRay(Input.mousePosition);
var hit : RaycastHit;
if(Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), hit)){
if(hit.collider == true){
var objet = Instantiate(etincelles, hit.point, Quaternion.identity);
objet.transform.rotation = Quaternion.FromToRotation(Vector3.up, hit.normal);
Network.Instantiate(etincelles, objet.transform.position, objet.transform.rotation, 0);
Destroy(objet.gameObject);
Instantiate(impact, hit.point, Quaternion.identity);
hit.collider.SendMessage("Degats", degats, SendMessageOptions.DontRequireReceiver);
}
}
Pardon j'ai oublié de vous mettre deux variables --'
Spoiler:
var etincelles : gameObject;
var impact : gameObject;
function tirer(){
peutTirer = false;
networkView.RPC("SyncSon", RPCMode.All);
SendMessageUpwards("Anime", 1);
ballesChargeur --;
var ray : Ray = Camera.main.ScreenPointToRay(Input.mousePosition);
var hit : RaycastHit;
if(Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), hit)){
if(hit.collider == true){
var objet = Instantiate(etincelles, hit.point, Quaternion.identity);
objet.transform.rotation = Quaternion.FromToRotation(Vector3.up, hit.normal);
Network.Instantiate(etincelles, objet.transform.position, objet.transform.rotation, 0);
Destroy(objet.gameObject);
Instantiate(impact, hit.point, Quaternion.identity);
hit.collider.SendMessage("Degats", degats, SendMessageOptions.DontRequireReceiver);
}
}
par Apomalyn » lun. 25 août 2014 18:49
Bien le bonjour,
Tous d'abord merci d'être en train de lire ces lignes. Entrons dans le vif du sujet, je suis en train de réaliser un FPS multijoueur sur le logiciel Unity3D (4.5.3) et je viens d'attaquer la partie la plus importante de tout FPS : les impacts et les dégats.
Afin de définir le point d'impact j'utilise ceci:
var ray : Ray = Camera.main.ScreenPointToRay(Input.mousePosition);
var hit : RaycastHit;Mais pour une raison que j'ignore totalement lorsque je tir, j'obtiens une erreur que voici :
Spoiler:
NullReferenceException: Object reference not set to an instance of an object
TirMagnum+$tirer$1+$.MoveNext () (at Assets/scripts/TirMagnum.js:33)
UnityEngine.MonoBehaviour:StartCoroutine_Auto(IEnumerator)
TirMagnum:Update() (at Assets/scripts/TirMagnum.js:20)
Alors si quelqu'un a une solution ou même un semblant de piste je vous serais extrêmement reconnaissant (oui je suis déprimé a ce niveau )
Ci-dessous je vous met toute la fonction, si vous avez besoin de plus n'hésitez pas.
Spoiler:
function tirer(){
peutTirer = false;
networkView.RPC("SyncSon", RPCMode.All);
SendMessageUpwards("Anime", 1);
ballesChargeur --;
var ray : Ray = Camera.main.ScreenPointToRay(Input.mousePosition);
var hit : RaycastHit;
if(Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), hit)){
if(hit.collider == true){
var objet = Instantiate(etincelles, hit.point, Quaternion.identity);
objet.transform.rotation = Quaternion.FromToRotation(Vector3.up, hit.normal);
Network.Instantiate(etincelles, objet.transform.position, objet.transform.rotation, 0);
Destroy(objet.gameObject);
Instantiate(impact, hit.point, Quaternion.identity);
hit.collider.SendMessage("Degats", degats, SendMessageOptions.DontRequireReceiver);
}
}
Merci d'avance, Apomalyn
Bien le bonjour,
Tous d'abord merci d'être en train de lire ces lignes. Entrons dans le vif du sujet, je suis en train de réaliser un FPS multijoueur sur le logiciel Unity3D (4.5.3) et je viens d'attaquer la partie la plus importante de tout FPS : les impacts et les dégats.
Afin de définir le point d'impact j'utilise ceci:
var ray : Ray = Camera.main.ScreenPointToRay(Input.mousePosition);
var hit : RaycastHit;Mais pour une raison que j'ignore totalement lorsque je tir, j'obtiens une erreur que voici :
Spoiler:
NullReferenceException: Object reference not set to an instance of an object
TirMagnum+$tirer$1+$.MoveNext () (at Assets/scripts/TirMagnum.js:33)
UnityEngine.MonoBehaviour:StartCoroutine_Auto(IEnumerator)
TirMagnum:Update() (at Assets/scripts/TirMagnum.js:20)
Alors si quelqu'un a une solution ou même un semblant de piste je vous serais extrêmement reconnaissant (oui je suis déprimé a ce niveau )
Ci-dessous je vous met toute la fonction, si vous avez besoin de plus n'hésitez pas.
Spoiler:
function tirer(){
peutTirer = false;
networkView.RPC("SyncSon", RPCMode.All);
SendMessageUpwards("Anime", 1);
ballesChargeur --;
var ray : Ray = Camera.main.ScreenPointToRay(Input.mousePosition);
var hit : RaycastHit;
if(Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), hit)){
if(hit.collider == true){
var objet = Instantiate(etincelles, hit.point, Quaternion.identity);
objet.transform.rotation = Quaternion.FromToRotation(Vector3.up, hit.normal);
Network.Instantiate(etincelles, objet.transform.position, objet.transform.rotation, 0);
Destroy(objet.gameObject);
Instantiate(impact, hit.point, Quaternion.identity);
hit.collider.SendMessage("Degats", degats, SendMessageOptions.DontRequireReceiver);
}
}
Merci d'avance, Apomalyn