Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I started making a game some time ago.
but there is something i can't fix.
I wan the Camera to Follow the Player,
I have tryed a lot of code like setting the position of the SkCamera to the Player Position. But the camera always end up looking another place.
What other alternatives do i have to making the camera follow the player node in the y axis?
The easiest way to make the camera always follow the player, is to make the camera a child of the player, that just assign this camera to the scene. Then if you need to take focus away from the player, have another camera set up, so that you can swap.
If you want the camera to only follow the player on the y axis, then make sure that player and camera are siblings to the same parent node, and on your didFinishUpdate method, just add camera.position.y = player.position.y
Alternative:
If player is a subclass of SKSpriteNode, you could always override the position property, and set the camera in there:
override var position : CGPoint
{
didSet
{
scene?.camera?.position.y = position.y //Yes we want to use ? because we do not know if there is a scene when changing the position of this sprite
}
}
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
I wanted to setup a minimap for my multiplayer game. I am using photon for multiplayer.
Thanks in advance
This question is probably too vague, but the rough strokes of how I would do it would be as follows
Render you scene (or only your environment) from a top down orthographic camera
Write a shader that transforms your player's positions to this camera's screenspace and draws a marker at their position (this can be quite difficult)
Render this out to a texture and display it on a mesh at the top of your screen / UI
This is not something that is super easy to do, you might be better just looking for one on the asset store.
If you have any difficulties then maybe ask another question specifically focusing on the area you're struggling with
best of luck
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 4 years ago.
Improve this question
When I shoot a projectile while running the projectile collides with the player, i.e. the player's collider is hitting the bullet's collider.
What is the best way to prevent this? By making a space between the gun and the projectile to avoid collision?
There are 2 ways I can think of right now.
1- You can create a selective collision script (or edit your existing one) and add an exception for the player object. So, bullets can go through the player. This is the main way to go.
2- You can use layers (or Z depth) and you can create a whole layer for bullet spawner etc. And make enemies also have targets in that layer/depth.
I don't have Unity installed on my current system right now. But I will install it when I get a chance, and if you don't solve it until then I will try to help properly.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
I am trying to implement iOS application with alphabet train in the sprite kit game scene in swift. I am not sure how to keep sprite node train wheel rotating and to connect it with the train sprite node, to achieve real train movement across the scene. I can create sprite nodes and present the the scene correctly, but unsure of the right approach processing, where train and wheel are connected and moving togehter. Do I need to use anything extra in addition to the SKActions? Thanks.
You can add the wheels and all pieces of the train as children of a main SKNode which represents the whole train. You can move that across the screen and simply handle rotation on the wheels.
let train = SKNode() // add move actions to this
let wheel = SKSPriteNode(imageNamed: "wheel") // add rotation actions to this
train.addChild(wheel)
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 7 years ago.
Improve this question
i'm making boundaries for the characters in my 2d game in unity 5. I added box colliders to the borders and my characters but the characters don't stop when they run into the other borders.
I don't have much experience of Unity 5, but probably these things work similarly than with old versions of Unity.
Colliders can be used for stopping things to go inside each other without writing your own OnCollisionEnter function.
So there must be some other problem. Check that:
Colliders are same type. 2D and 3D colliders don't detect collisions with each other.
At least one participant of the collision needs to have rigidbody component attached.
Check that is trigger is not selected on any of the colliders
Pause the game and check in the scene view that the green boxes of the colliders actually colliding
Check the layers of the gameobjects and check if they are should collide because of the layer based collision
When the colliders intersect it will trigger an OnCollisionEnter event. You need to tell it what to do after that. It could be setting the velocity to 0 in the case of a ball hitting the wall, or it could be awakening enemies in the case of a player walking into a trap. You have to define the behavior.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
Improve this question
I am currently trying to make something fly with Oculus Rift.
The only control is the Oculus Camera.
The player is always moving forward, but I want to allow him to rotate, go up, and down. To go up, the player must look at 10° to 45° up, same for all directions.
I'm currently using Unity, and I get a quaternion about the camera rotation.
Is there any script doing it? How can I do it myself, or at least, how can I translate quaternion to rotation?
Good news! For your purposes you won't need to deal directly with quaternions. A little vector math might help, though.
transform.forward in any script will give you the forward direction of the object the script is attached to. If it's on the camera, it will be the direction the player is looking.
Using just the camera's forward direction, and the forward direction the player moves along, you can calculate the needed information for your player rotation.
Vector3.Angle(transform.forward, cameraObject.transform.forward) will give you the angle between the two forward directions.
Vector3.Cross(transform.forward, cameraObject.transform.forward) will give you the axis of rotation.
You can check if the angle is within the desired range, and use
transform.Rotate(Vector3.Cross(transform.forward, cameraObject.transform.forward), rotationSpeed * Time.deltaTime) to perform the rotation. If the rotation is in the opposite direction than what you want, you might need to switch the order of the two parameters to Vector3.Cross.