• unity3d自己写角色移动脚本


    废话没有,直接上代码:

     1 using UnityEngine;
     2 using System.Collections;
     3 
     4 public class SuperWalk : MonoBehaviour {
     5 
     6     public float speed = 10.0f;//移动速度
     7     public float jumpSpeed = 8.0f;//跳跃速度
     8     public float gravity = 20.0f;//重力
     9 
    10     private Vector3 moveDirection = Vector3.zero;//移动方向
    11     private bool grounded = false;//是否脚下有物体
    12 
    13     CharacterController controller;//角色控制器
    14 
    15     void FixedUpdate () {
    16         if (grounded) {//如果在地面
    17             //获取移动方向
    18             moveDirection = new Vector3(Input.GetAxis("Horizontal"),0,Input.GetAxis("Vertical"));
    19             moveDirection = transform.TransformDirection(moveDirection);
    20             moveDirection *= speed;
    21 
    22             //如果按了跳跃按钮
    23             if (Input.GetButton("Jump")) {
    24                 moveDirection.y = jumpSpeed;
    25             }
    26         }
    27         moveDirection.y -= gravity * Time.deltaTime;
    28         //获取角色控制器
    29         controller = GetComponent<CharacterController>();
    30         //获取角色移动返回的位掩码
    31         CollisionFlags v = controller.Move(moveDirection * Time.deltaTime);
    32 
    33         //是否脚下有物体(个人理解)
    34         grounded = (v & CollisionFlags.CollidedBelow) != 0;
    35 
    36     }
    37 }
    控制角色移动脚本


    请大神们指点

    来源:吃豆游戏作者

  • 相关阅读:
    vue 实现左侧分类列表,右侧文档列表
    C# string数组与list< string >的相互转换
    c# List<string>的用法
    类数组 数组
    事件
    js封装方法和浏览器内核
    dom
    try...catch es5
    data对象 定时器
    call apply 原型 原型链
  • 原文地址:https://www.cnblogs.com/liyajie/p/unity3d.html
Copyright © 2020-2023  润新知