|
Im trying to shoot in the y-axis however the bullet is coming from the left side in the z axis of the screen instead from the object I want it to come from This is my code var projectile : Rigidbody; var initialSpeed = 20.0; var reloadTime = 0.5; var ammoCount = 20; private var lastShot = -10.0; function Fire () { // Did the time exceed the reload time? if (Time.time > reloadTime + lastShot && ammoCount > 0) { // create a new projectile, use the same position and rotation as the Launcher. var instantiatedProjectile : Rigidbody = Instantiate (projectile, transform.position, transform.rotation);
}
(comments are locked)
|
To see "initialSpeed", in "transform.TransformDirection(0,0,initialSpeed)",change to "transform.TransformDirection(0,initialSpeed,0)"Because "transform.TransformDirection(x,y,z)"
(comments are locked)
|

I think you're just a little confused about the axes themselves. In Unity, the global y axis represents the up vector while the x and z represent side vectors. The local x, y, and z axes represent the right, up and forward axes of the transform respectively. When you say you want to shoot in the y axis (or up axis), which one do you want local or global? Since you are creating a velocity vector3 of initialSpeed on the local Z axis of the transform, of course it will have a velocity along the local Z (not Y) axis. Please rephrase to provide a clearer idea of your use case?