【unity3d】利用键盘操作物体移动的方法

利用W,S,A,D控制物体前后左右移动

方法一:

利用Input.GetAxis();方法

Input.GetAxis("Horizontal");    //利用A,D控制水平方向,这个方法的返回值是一个                                                        在-1~1之间的数值,键盘输入A即为-1,D即为1

Input.GetAxis("Vertical");        //利用W,S控制前后方向,这个方法的返回值是一个                                                        在-1~1之间的数值,键盘输入W即为-1,S即为1

接下来即可实现物体的前后左右移动:


void Update () {
        float BallX = Input.GetAxis("Horizontal");
        float BallY = Input.GetAxis("Vertical");

        if (BallX>0)
        {
            obj.GetComponent<Rigidbody>().velocity = Vector3.right*ballVelocity;
        }
        if (BallX < 0)
        {
            obj.GetComponent<Rigidbody>().velocity = Vector3.left * ballVelocity;
        }
        if (BallY > 0)
        {
            obj.GetComponent<Rigidbody>().velocity = Vector3.forward * ballVelocity;
        }
        if (BallY < 0)
        {
            obj.GetComponent<Rigidbody>().velocity = Vector3.back * ballVelocity;
        }
       
	}

这样可以很方便的实现物体使用键盘的移动,但是也有一些缺陷,就是无法进行前左。后右等偏移方向的移动,接下来就有了第二种方法。


方法二:
同样是利用Input.GetAxis();方法,但是这次是给需要移动的方向直接施加一个力 

rd=GetComponent<Rigidbody>();     //获取rigidbody组件
float BallX = Input.GetAxis("Horizontal");      
float BallY = Input.GetAxis("Vertical"); 
rd.AddForce(new Vector(BALLX,0,BALLY)*5);      //根据键盘的输入,来给物体加入各个方向的力,实现移动
这种方法完美解决了第一种方法的缺陷,并且移动效果更加真实,代码量较少  


如果有什么问题,可以留言给我哦 



评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值