Search Unity

[RELEASED] Complete Physics Platformer Kit

Discussion in 'Assets and Asset Store' started by Greg-Sergeant, Oct 2, 2013.

  1. Besus

    Besus

    Joined:
    Mar 9, 2014
    Posts:
    226
    You could make a second call in the Jump() function (where the jump force is applied) to add force based on your current velocity. Something like:

    Code (CSharp):
    1. GetComponent<Rigidbody>().AddForce(transform.forward * GetComponent<Rigidbody>().velocity.magnitude, ForceMode.Impulse);
    But this would need to come after the jump force is applied since that would apply whatever the jumpForce.x/jumpForce.z is as well.
     
  2. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    Hello Besus, in the PlayerMove script, are you saying I should add another else if and put your line of code in there? Just asking cause it sounds like you have it worked out.

    Another question, if the player is on a moving platform, do I need to set a tag on the platform so the IsGrounded will let the player jump off, too? My platform is not a "moving platform" it is a child of an animated bone I imported from Maya.

    Always love your advise, Besus.
     
  3. Spram

    Spram

    Joined:
    Apr 11, 2015
    Posts:
    4
    I put my game on Steam Greenlight and got a mediocre reception. Everyone is telling me that the game needs more polish or that the graphics are mediocre.. I don't think so, but that's their call. Anyway, I've only gotten around 800 unique visitors and now that it has been 3/4 days since I put the game up the visitors have dropped to almost 0. So if anyone cares, here's the page: http://steamcommunity.com/sharedfiles/filedetails/?id=725244803

    Sorry it had to come to this, but I need the views!

    Edit: Thanks Besus!
    v v v v v v v
     
    Last edited: Jul 20, 2016
  4. Besus

    Besus

    Joined:
    Mar 9, 2014
    Posts:
    226
    Yeah, they all tend to taper off heavily once you fall off of the front page. You definitely need to keep getting the word out. Through Twitter (making sure to utilize hashtags related to your game) and other social media, sending out press releases to direct folks to your Greenlight page (and hope that they do one, or even respond since most will not), and hitting up any related forums. You will definitely get greenlit at some point (all decent games do), it just may not be soon. Don't let it or the dumb Steam users' comment discourage you though (they are barely a step above the cesspool that is YouTube comments) and keep at it.

    I gave your demo a shot and really liked it! You got my yes vote!
     
    closetgeekshow likes this.
  5. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    You have a good grass texture looking cartoon , while you used another grass texture looking realistic old school

    The good one



    Below the grass and rocks textures don't macth the cartoon universe, and looks like prorotype bad game, they are not using enought vivid colors, their pattern detail is bad and they look very bland.


    The town houses looks semi realistic and lacks some good colors choice and variations

    (i don't understand the lamp feature in a platformer it brings nothing)

    I noticed the level by night ,it looks very bland and not attractive. If you add a vivid moon colored lightening and shadows it will help a lot.
    I am still not sure about real time of day lightening in a platformer as design choice.

    The player camera that behaves old school and very basic, it would need to behave like a spring follow to make it less rigid. Or use some free camera we could rotate as we want.

    Your hero can be similar to Kirby's games, but your hero really lacks special moves to make your game more appeal
    www.youtube.com/watch?v=3YXN_0R_8WY
    Give the player some interesting power up, attached items or clothes also, your hero is just not interesting.

    I know your game is not hard core, but this don't mean you can't bring more diversity about behaviour ennemies, like adding some firing at you like turrets on platforming areas , others flying.Better vivid colors would help, as they are almost not noticeable sometimes as their color blends too much with level.

    I seen some level parts very flat terrain , some small elevations with some coins will bring more interest than a long flat area with trees.

    People complaining about some bad textures choice or the hero too simple design are right, why didn't you asked feedback on gaming or 3D art forums before pushing your game to greenlight ?
    Players expects platformers to be a good platformer like Banjoe Kazooie for example.
    I tried your demo and i still don't know what is the game ? A platformer like Mario 3D with Star goals to collect ? Some adventure with dialog with npc quests ?


    Anyway some parts of the game looks great and you made a great accomplishment so far.
     
    Last edited: Jul 20, 2016
  6. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    @Greg Sergeant
    Hi Greg ,
    I use a level made of 3D tiles and the character using a cube get stuck , even making floor tiles collision larger than the 3D tile itself.


    I made a basic test and driving a capsule collider the character is never stuck. So could make a new version of the player character and grounded ennemies using capsule colliders instead of the cube collider ?

     
  7. Besus

    Besus

    Joined:
    Mar 9, 2014
    Posts:
    226
    I did just that. Since you are constraining the rotation of the Rigidbody anyway, the capsule collider won't fall over and the edges of the boxes won't snag on each other.

    On a side note, I made a pretty big update to my little Nintendo 64-styled/inspired platformer using this kit and hope to expand on it even further (with commercial aspirations) in the coming months:



    You can read all about the changes made to it here: http://www.studiobesus.com/massive-update-to-make-firewing-64-v2/
     
  8. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Good work, it is becoming nice.
     
    Last edited: Nov 1, 2016
  9. Besus

    Besus

    Joined:
    Mar 9, 2014
    Posts:
    226
    I had played with Rotorz, so I always had it set to place objects with box colliders. This was in 2D, but the character snagging on the microscopic corners was the same as it would be in a 3D tile-based world. The player would instead have the capsule (or sphere if it fits) so that the edges wouldn't snag like they did when the player had a box collider.
     
    Last edited: Jul 20, 2016
  10. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    Does anyone know how to make the character crouch and slide on his back for a short time. Is there code for this functionality?
     
  11. Besus

    Besus

    Joined:
    Mar 9, 2014
    Posts:
    226
    Just call an animation state of him sliding. For the collision, the simplest would be to toggle a different collider on the player. Assign the player two colliders; one standard and another for the crouch state. Assign these to two different variables (let's say: public Collider standardCol/public Collider crouchCol) in a script and when walking, disable the crouch collider and while sliding, enable the sliding collider and disable the standard one. This will help avoid (dynamically) resizing the existing collider and dealing with finding the perfect values (center and size), which can also be a bit expensive for performance.
     
    sean3Dmonkey and zenGarden like this.
  12. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    That is a great idea, Besus! I'm going to learn how to swap out the player collisions and add a crouch. :)
     
  13. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    Hey there Besus, I have figured out hoe to use 2 different colliders and switch between them. The Crouch is a separate script. In the script, how do I hook into the animator component. I have a "public Animator animator;" variable? However, in the inspector, I can not drag in the Player's (Animator). How do I hook into the animator in my crouch script?
     
  14. Besus

    Besus

    Joined:
    Mar 9, 2014
    Posts:
    226
    You need to drag the object with the animator component itself. If you stuck with the original setup, this would be the player model under the root player object.
     
  15. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    Thank you Besus, that worked. Now I just need to get the player to switch to a run state after the slide button press is lifted. I don't understand why the run is not turning on after the Slide. Do I need to set the grounded parameter to true in Mechanim after the GroundSlide_Bool is set to false?
     
  16. Besus

    Besus

    Joined:
    Mar 9, 2014
    Posts:
    226
    No, you need to get the button up event. I have no way of knowing your current code/setup, but the simplest way would be to set a sliding bool to true while a button is held down. So something like this:
    Code (CSharp):
    1. if (Input.GetButton("Slide"))
    2.    slide = true;   // Plus other stuff while sliding
    3. else
    4.    slide = false;   // Plus other stuff while NOT sliding
     
  17. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    Thanks for your help Besus.
    If anyone wants to add a Slide on the ground to their game, just use this code in a separate script. Then on the player add a sphere collider component. The sphere collider should be the height of the player while doing the slide or crouch. The add a physical material to their floor. The physical material should be frictionless. Then, add a "Down" input assigned to a button.

    Create a loop animation of the player doing the slide. Make a bool parameter called "GroundSlide_Bool" Then make transitions from the run state to the slide state. The Transition from the Run to the Slide should be true and set the Condition to GroundedSlide_Bool. The transition from the Slide to the Run should be false and set the Condition to GroundedSlide_Bool. Make another transition from the Idle to the Slide and make that true and set the Condition to GroundedSlide_Bool. Make another transition of the Slide to the Idle and make that false and set the Condition to GroundedSlide_Bool.

    [Code/

    float rotY = 0.0f;
    bool slidingUnder = false;
    public Animator animator;

    public GameObject playerObject;



    void Update()
    {
    if (Input.GetButton("Down"))
    {
    slidingUnder = !slidingUnder;
    rotY = transform.eulerAngles.y;
    GetComponent<Rigidbody>().AddForce(new Vector3(Mathf.Cos(rotY), 0.0f, Mathf.Sin(rotY)) * 20);

    playerObject.GetComponent<SphereCollider>().enabled = true;
    playerObject.GetComponent<BoxCollider>().enabled = false;
    animator.SetBool("GroundSlide_Bool", true); // turn on ground slide animation

    slidingUnder = true;

    }
    else //if ("Crouch")
    {

    playerObject.GetComponent<SphereCollider>().enabled = false;
    playerObject.GetComponent<BoxCollider>().enabled = true;
    animator.SetBool("GroundSlide_Bool", false); // turn off ground slide animation
    animator.SetBool("Ground", true); // Turn on run animation
    }
    }

    /Code]

    Hope the helps someone. Thanks again Besus.
     
    Last edited: Aug 9, 2016
  18. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    Besus, do you know how to add a flip to the second jump of the double jump?
     
  19. Besus

    Besus

    Joined:
    Mar 9, 2014
    Posts:
    226
    In the function that applies the force for the double-jump, add a call to play an animator state. That or set a bool in the animator to true for the flip and then to false again after the player lands.

    Code (CSharp):
    1. animator.Play("Flip");
     
  20. Xenobite

    Xenobite

    Joined:
    Jan 27, 2014
    Posts:
    15
    This game has been Greenlit by the Community!

    congrats :D

    btw tried demo and looks promising, but it needs a lot of polishing
    better lighting and post fx would help a lot
     
  21. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    Awesome, thanks Besus. I can't wait to try this out.
     
  22. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    Has anyone found out how to jump/launch off off the ladders script?

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


    Has anyone found a way to jump/launch off the rope when you are on the ladder? When I press jump, the player falls; there is no jump.
     
  23. PedroNeves

    PedroNeves

    Joined:
    Feb 23, 2014
    Posts:
    10
    Hello,
    I've dedicated tons of hours in this kit last year, but after unity update i gave up, maybe one day i will continue..
    You can check what i did at

    I really wanted to change the character but i never found documentation on how to edit it..
     
    dragonstar and Besus like this.
  24. Besus

    Besus

    Joined:
    Mar 9, 2014
    Posts:
    226
    That looks really neat! I like the clever use of the grab mechanics as transportation. :)

    But there is a PDF included in the package (root folder) that briefly details how to swap-out the character model.
     
  25. SquareEyesTaco

    SquareEyesTaco

    Joined:
    Mar 25, 2013
    Posts:
    28
    hello so i just have a simple question, if im trying to implement an xboxone controller or controller in general whats the easiest way to do that?
     
  26. ksalmon1

    ksalmon1

    Joined:
    Sep 20, 2016
    Posts:
    2
    I would love if someone made a video tutorial on how to swap out the character. I just can't seem to get it.
     
  27. Besus

    Besus

    Joined:
    Mar 9, 2014
    Posts:
    226
    Not really specific to the platformer kit... But see here: http://wiki.unity3d.com/index.php?title=Xbox360Controller
    It's just a matter of assigning joystick buttons (instead of or in addition to keys) to the various inputs.
     
  28. ksalmon1

    ksalmon1

    Joined:
    Sep 20, 2016
    Posts:
    2
    I finally got it figured out, and it was a simple solution. For some reason I have to keep the original "Player Model" as a child to Player, and turn off the mesh render for it.
     
  29. StevenPicard

    StevenPicard

    Joined:
    Mar 7, 2016
    Posts:
    859
    This was a big issue for me. I wish some features of this asset were more user friendly. It's a real shame it's no longer supported and updated.
     
  30. DiscoFever

    DiscoFever

    Joined:
    Nov 16, 2014
    Posts:
    286
    I can't seem to make the character walk on simple sidewalk in a small city; did someone encounter the problem too ?
     
  31. Frpmta

    Frpmta

    Joined:
    Nov 30, 2013
    Posts:
    479

    ^When doing this and trying to go back, the character controller gets glitched and you are suddenly flying 20 meters away or falling off.
    Don't think it always used to be like that. Did something break?

    More clearly:
     
    Last edited: Oct 13, 2016
  32. Henkesson

    Henkesson

    Joined:
    Nov 17, 2016
    Posts:
    1
    I want to change the character from the cube guy into the free to download and use unity-chan that you can get from the asset store, but as I'm still a beginner with using unity, and having a difficult time switching out the animations and make them look neat and clean.

    Could anyone give me some advice on how to make it work for unity-chan with this asset kit? proper running and jumping animations are fine for starters.
     
  33. d-3

    d-3

    Joined:
    Oct 18, 2009
    Posts:
    213

    Add a new jump Value in PlayerMove.cs

    public Vector3 LadderJump = new Vector3(0, 3, -5);
    remember this will set force in the directions of your character!! in this case is up and backward!


    If you are using another script to Ladder moviment something like

    private PlayerMove playerMove;

    in Start
    playerMove = GetComponent<PlayerMove>();

    and then use something like this when you press jump in ladder script!

    playerMove.Jump (playerMove.LadderJump);


    cheers!
     
  34. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    Has anyone figured out how to hook up your own enemy and attach the animator so you can see your enemy move?
    I love this platformer kit, it is truely awesome!
     
  35. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    Thank you, d-3. Can't wait to try this out.
    Sean
     
    d-3 likes this.
  36. Besus

    Besus

    Joined:
    Mar 9, 2014
    Posts:
    226
    Same way that you would do it for the player; except easier since there are just 3 animator states (if I recall) and no arms layer to deal with. Look at the existing enemy animator controller to see what the state names are. Beyond that you would make the model itself a child of the enemy prefab (like the player).
     
  37. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    Awesome. Thank you, Besus!
    You are awesome.
     
  38. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    Hey Besus, there is no animator plugged into the Enemy AI script. In the Enemy AI script, the Animator Controller channel is blank. I even checked the enemy Prefab. When you click on the radio button to the right of the Animator Controller channel in the Enemy Ai script, the "Select Animator" only shows the animator for the player.
    Where did you see the animator for the enemy?
     
  39. Besus

    Besus

    Joined:
    Mar 9, 2014
    Posts:
    226
    Look in the misc folder then. You'll find the EnemyController in there.
     
  40. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    The EnemyController can not be dragged into the Animator Controller of the Enemy AI script. Clicking on the radio button next to the Animator Controller then clicking on the Assets tab does not show the EnemyController as an option to select. Is there another way to attach the Enemy Controller to the Enemy AI script?
    Thank you getting me this far, Besus.
     
  41. Besus

    Besus

    Joined:
    Mar 9, 2014
    Posts:
    226
    That's because you need to have the Animator itself on a gameobject in your scene (or in this case on the enemy model you want to animate). You will then drag that object form the hierarchy in your scene to the animator field on the Enemy Controller/Health scripts.

    No offense Sean, but maybe you should go through some basic Unity tutorials to get an understanding of components, animators, inspector variable assignments, etc before diving in head-first to a project like this.
     
  42. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    Hello Besus, thank you so much for taking the time to answer all my questions. Under the parent node that had the Enemy AI component, I did have an Animator component assigned to the child object that contained the rig; just like the player. And that child object that contained the rig and Animator component was plugged into the Animator Controller channel of the Enemy AI script.
    I found out what was going wrong with my Enemy. Below the Animator Controller channel in the EnemyAI script, there is a "Move To Points Script" channel. I had script plugged into the "Move To Points Script" that was conflicting with the Animator controller. If I delete the script plugged into the "Move To Points Script," the enemy animation work.

    It is always a pleasure to read your notes, and you always give great advice.
    Thank you,
    Sean
     
  43. webgrapx

    webgrapx

    Joined:
    Jul 21, 2015
    Posts:
    22
    Greetings, you would have some video where you see the change of player by another character.
    Thank you.

    George
     
  44. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    Are you asking how to put your character in the game instead of the yellow box character? If so it is easy. If you want to know how, I can explain how.
     
  45. webgrapx

    webgrapx

    Joined:
    Jul 21, 2015
    Posts:
    22
    Greetings, would you have any video where one player changes for another?

    Thank you,
     
  46. tra2002

    tra2002

    Joined:
    May 11, 2011
    Posts:
    142

    working on a project and redid this script to be a little more friendly on returning default values and such. Create a gameobject with a collider set to trigger. Add this script and set the new cam target to what you want as your cameras target. when the player exits the trigger all your original cam settings are returned to the camera.

    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. public class CameraTargetChanger : MonoBehaviour
    5. {
    6.  
    7.     CameraFollow cFollow;
    8.     PlayerMove pMove;
    9.  
    10.     public Transform newCamTarget;
    11.     public Vector3 newTargetOffset;
    12.     public float newTargetFollowSpeed;
    13.  
    14.     private bool inTrigger = false;
    15.     private Transform playerTransform;
    16.     private Vector3 camOriginalOffset;
    17.     private float camOriginalFollowSpeed;
    18.  
    19.     //We should trigger if the player enters our trigger
    20.     void OnTriggerEnter(Collider other)
    21.     {
    22.         //If what entered our trigger has the TAG Player...
    23.         if (other.gameObject.tag == "Player" && inTrigger == false)
    24.         {
    25.             inTrigger = true;//make sure it only triggers 1 time
    26.  
    27.             //Let's ask the Camera to give us their Camera Follow component to mess with!
    28.             cFollow = Camera.main.GetComponent<CameraFollow>();
    29.  
    30.             //keep orginal cam stuff
    31.             playerTransform = cFollow.target;
    32.             camOriginalOffset = cFollow.targetOffset;
    33.             camOriginalFollowSpeed = cFollow.followSpeed;
    34.  
    35.             //change to new cam stuff
    36.             cFollow.followSpeed = newTargetFollowSpeed;
    37.  
    38.             cFollow.target = newCamTarget;
    39.  
    40.             cFollow.targetOffset = newTargetOffset;
    41.         }
    42.     }
    43.  
    44.     private void OnTriggerExit(Collider other)
    45.     {
    46.         //exited the cam trigger now reset cam stuff to original
    47.         if (other.gameObject.tag == "Player" && inTrigger == true)
    48.         {
    49.             inTrigger = false;
    50.             cFollow = Camera.main.GetComponent<CameraFollow>();
    51.             cFollow.followSpeed = camOriginalFollowSpeed;
    52.             cFollow.targetOffset = camOriginalOffset;
    53.             cFollow.target = playerTransform;
    54.         }
    55.     }
    56. }
     
  47. tra2002

    tra2002

    Joined:
    May 11, 2011
    Posts:
    142
    Also fixed the Wall Jump script to work off the normals of the wall the player is colliding with. This way it can work on the x or z. Pretty close to the same script but instead of triggers use a small raycast to detect the wall then from the raycast hit can get the normal direction.



    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. public class PlayerWallJump : MonoBehaviour
    5. {
    6.  
    7.     //We'll use those 3 to communicate with the rest of the kit.
    8.     private PlayerMove playerMove;
    9.     private CharacterMotor characterMotor;
    10.  
    11.     public bool CanWallJump;
    12.  
    13.     //We'll pick the grounded bool from the Animator and store here to know if we're grounded.
    14.     private bool GroundedBool;
    15.     private GameObject CurrentWall;
    16.  
    17.     public Vector3 wallJumpForce = new Vector3(0, 13, 0);
    18.     private float wallJumpSpeed;
    19.     private Rigidbody rb;
    20.  
    21.     // Use this for initialization
    22.     void Start()
    23.     {
    24.         playerMove = GetComponent<PlayerMove>();
    25.         characterMotor = GetComponent<CharacterMotor>();
    26.         rb = GetComponent<Rigidbody>();
    27.         CanWallJump = false;
    28.         wallJumpSpeed = playerMove.maxSpeed;
    29.     }
    30.  
    31.     void Update()
    32.     {
    33.         WallJumpCheck();
    34.     }
    35.  
    36.     //This is an udpate that is called less frequently
    37.     void FixedUpdate()
    38.     {
    39.         //Let's pick the Grounded Bool from the animator, since the player grounded bool is private and we can't get it directly..
    40.         GroundedBool = playerMove.animator.GetBool("Grounded");
    41.     }
    42.  
    43.     void WallJumpCheck()
    44.     {
    45.         float rayLength = 1f; //for thicker characters or to detect walls further off increase this
    46.         Vector3 fwd = transform.TransformDirection(Vector3.forward);
    47.         Debug.DrawRay(transform.position, fwd * rayLength, Color.green); //draw a green ray just to see what is going on
    48.  
    49.         RaycastHit hit;
    50.  
    51.         if(Physics.Raycast(transform.position, fwd, out hit, rayLength))
    52.         {
    53.             if(hit.collider.tag == "Wall") //wall must be tagged wall but no need for trigger
    54.             {
    55.                 CanWallJump = true;
    56.                 CurrentWall = hit.transform.gameObject;
    57.  
    58.                 DoWallJump(hit.normal, hit.transform); //do the wall jump
    59.             }
    60.             else
    61.             {
    62.                 CanWallJump = false;
    63.                 CurrentWall = null;
    64.             }
    65.         }
    66.     }
    67.    
    68.     void DoWallJump(Vector3 hitNormal, Transform hitTransform)
    69.     {
    70.         if (Input.GetButtonDown("Jump") && !GroundedBool && CanWallJump)
    71.         {
    72.             Vector3 WallPos = hitTransform.position;
    73.             Vector3 myPos = transform.position;
    74.             myPos.y = 0;
    75.             WallPos.y = 0;
    76.             transform.rotation = Quaternion.LookRotation(myPos - WallPos);
    77.  
    78.             Vector3 Direction = hitNormal;
    79.  
    80.             Direction.y = 0;
    81.             Direction.x = Direction.x * wallJumpSpeed;
    82.             Direction.z = Direction.z * wallJumpSpeed;
    83.  
    84.             Debug.Log("JumpTo " + gameObject.transform.forward + Direction);
    85.             rb.AddForce(Direction * 50);
    86.             playerMove.Jump(wallJumpForce);
    87.  
    88.  
    89.             playerMove.animator.Play("Jump1", 0);
    90.  
    91.             //And lets set the wall jump to false! and if you have a double jump can set to false also if needed
    92.             CanWallJump = false;
    93.         }
    94.        
    95.         if (CanWallJump && !GroundedBool)
    96.         {
    97.             Vector3 WallPos = hitTransform.position;
    98.             Vector3 myPos = transform.position;
    99.             myPos.y = 0;
    100.             WallPos.y = 0;
    101.             transform.rotation = Quaternion.LookRotation(WallPos - myPos);
    102.         }
    103.     }
    104. }
     
  48. BuckeyeStudios

    BuckeyeStudios

    Joined:
    Oct 24, 2013
    Posts:
    104
    @Besus
    Would you be able to do a video on how you got your swimming mechanics set up. As seeing how you made it and the thought process you used help me learn more about programming.
     
  49. Besus

    Besus

    Joined:
    Mar 9, 2014
    Posts:
    226
    Sorry man, but probably not. It's a lot of work to go in to detail explaining (and capturing/narrating) something like that.
     
  50. LunarExGames

    LunarExGames

    Joined:
    Feb 18, 2015
    Posts:
    44
    Is this asset going to be updated by the developer? Looks like it hasn't been updated since 2015, which is ages ago. Looks interesting but also a gamble.