unity自学第一天

学习unity3d的第一天

建立一个由键盘控制走路,鼠标控制方向的对象在这里插入图片描述
构成对象:地形(Terrain)、player(创立的对象)、Sphere(在对象创立的对象)、Camera(跟随在Sphere的摄像机)
键盘控制走路的代码:

public class playmove : MonoBehaviour
{
    public float speed;
    public CharacterController playercontroller;//角色控制器
    void Update()
    {
        float x, z;
        x = Input.GetAxis("Horizontal");//水平
        z = Input.GetAxis("Vertical");//垂直
        Vector3 move;
        move = transform.right * x + transform.forward * z;//控制按键操控的方向变换
        playercontroller.Move(move * speed * Time.deltaTime);//设置时间
        
    }
}



解析:
1、添加角色控制器
在Player上添加CharacterController组件
2、移动方法
这种方法一般用于3D游戏Player进行移动
Input.GetAxix()得到游戏轴上的输入
"Horizontal"水平轴
"Vertical"垂直轴
检测x、z轴的按键输入输入
move = transform.right * x + transform.forward * z
相当于
move=(0,0,0)
transform.right * x=(x,0,0)
transform.forward * z=(0,0,z)
最后得到一个三维move的位置

 playercontroller.Move(move * speed * Time.deltaTime);
 Move()方法是角色控制器的函数,用于移动
 move作为一个三维数据是一个参数。



鼠标控制方向的代码
在这里插入图片描述

public class Cameralook : MonoBehaviour
{
    public float mousespeed;//鼠标速度
    public Transform player;//方向
    private float xmove;
    void Start()
    {
        Cursor.lockState = CursorLockMode.Locked;//控制鼠标无限向上移动
        
    }
    void Update()
    {
        float x, y;
        x = Input.GetAxis("Mouse X")*mousespeed*Time.deltaTime;//物体整体运动
        y = Input.GetAxis("Mouse Y")*mousespeed * Time.deltaTime;//摄像机上下运动
        xmove = xmove - y;
        xmove = Mathf.Clamp(xmove, -90, 90);
        this.transform.localRotation = Quaternion.Euler(xmove, 0, 0);//确定旋转的角度

        player.Rotate(Vector3.up * x);
    }
}


代码解析:
1、 Cursor.lockState = CursorLockMode.Locked;
确定硬件指针是否锁定到视图的中心、受限于窗口或者根本不受限制。
锁定时,光标位于视图的中心且无法移动。无论 Cursor.visible 的值如何,光标在此状态下均不可见。
对鼠标进行控制

CursorLockMode.None:鼠标光标不被锁定,可以在屏幕范围内自由移动。
CursorLockMode.Confined:鼠标光标被限制在游戏窗口内,无法离开窗口边界。
CursorLockMode.Locked:鼠标光标被完全隐藏并锁定在中心位置,通常用于第一人称或第三人称视角的游戏,以便玩家可以通过鼠标平滑地旋转摄像机或控制角色视角。



2、同样使用Input.GetAxis()方法进行接受输入
Mouse X 鼠标X轴移动
Mouse Y 鼠标y轴移动

Mathf.Clamp()用于现在x轴移动在-9090角度之间。
然后得到旋转的角度,通过Rotate()方法进行移动。


在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值