c# - How can I lock the Camera? Unity2D -
i'm trying make when edge of map either right side or left side camera locks still allows player move forward towards edge until turn around. know need use mathf.clamp i'm not sure how apply current code. thank you.
using system.collections; using system.collections.generic; using unityengine; public class walkscript : monobehaviour { public float speed = 1.5f; private vector3 target; private vector3 lasttarget; private animator animator; private vector3 camtarget; public gameobject cameramain; void start () { target = transform.position; camtarget = cameramain.transform.position; animator = getcomponent<animator> (); } void update () { if (input.getmousebuttondown(0)) { target = camera.main.screentoworldpoint(input.mouseposition); target.z = transform.position.z; target.y = transform.position.y; camtarget = camera.main.screentoworldpoint(input.mouseposition); camtarget.z = cameramain.transform.position.z; camtarget.y = cameramain.transform.position.y; flipcharacter (); } transform.position = vector3.movetowards(transform.position, target, speed * time.deltatime); cameramain.transform.position = vector3.movetowards(cameramain.transform.position, camtarget, speed * time.deltatime); lasttarget.x = target.x; } private void flipcharacter() { if (lasttarget.x > target.x) { animator.transform.rotate(0, 180, 0); } else if (lasttarget.x < target.x) { animator.transform.rotate(0, 180, 0); } } }
hello! code should work.
public vector2 maplimit; void update() { if (input.getmousebuttondown(0)) { target = camera.main.screentoworldpoint(input.mouseposition); target.z = transform.position.z; target.y = transform.position.y; camtarget = camera.main.screentoworldpoint(input.mouseposition); camtarget.z = cameramain.transform.position.z; camtarget.y = cameramain.transform.position.y; camtarget.x = mathf.clamp(camtarget.x, -maplimit.x, maplimit.x); camtarget.z = mathf.clamp(camtarget.z, -maplimit.y, maplimit.y); flipcharacter(); } transform.position = vector3.movetowards(transform.position, target, speed * time.deltatime); cameramain.transform.position = vector3.lerp(cameramain.trasform.position, camtarget, time.deltatime * speed); lasttarget.x = target.x; }
Comments
Post a Comment