Unity 3D Spell casting
<p>I'm having trouble implementing working spells in Unity 3D 5.3.5. I have an empty game object which is the parent of the ability, it contains only a script called Spell and also a child which is the particle system. For testing purposes I left it in the resource folder so I can easily instantiate it like this </p>

<pre><code>GameObject castedSpell = (GameObject)Instantiate(Resources.Load("Fireball"), transform.position, transform.rotation);
</code></pre>

<ul>
<li><code>transform</code> refers to the current Player object's <code>transform</code></li>
</ul>

<p>However it is spawning in the ground which can be fixed by moving the y axis from the transform, but this doesn't sounds like a good idea also sometimes the particles will collide with the player, and I want to instantiate the spell towards a crosshair in the middle of the screen : <a href="http://prntscr.com/bx91op" rel="nofollow">http://prntscr.com/bx91op</a></p>

<p>The crosshair works exactly like the one in Tera online - reference : <a href="https://www.youtube.com/watch?v=Jcg4o8IVwlw" rel="nofollow">https://www.youtube.com/watch?v=Jcg4o8IVwlw</a> </p>

<p>I do have a copy of this crosshair but I still dont know how to instantiate the spell towards it. I also need to do some damaging, etc. when the spell collides. I saw that the particle system has a collision property and also an event trigger <code>private void OnParticleCollision(GameObject other)</code> but this doesn't seem to work at all when I attached that to the main particle object <a href="http://prntscr.com/bx9356" rel="nofollow">http://prntscr.com/bx9356</a>. My player object has the layer tag of <code>PlayArea</code>, when I set the collision property to not collide with this specific tag nothing changes it will still explode inside the player.</p>

<p>So a short summary of my questions :</p>

<ol>
<li>How to instantiate properly a spell ?</li>
<li>How to rotate it and send it in direction to the crosshair on the screen ?</li>
<li>How to prevent collision with specific objects ?</li>
<li>How to check when a collision occurs ?</li>
</ol>