您的位置:首页 > 移动开发 > Unity3D

【Unity】使用射线碰撞限制人物主角多次跳跃

2015-12-01 00:11 666 查看
using UnityEngine;
using System.Collections;
/// <summary>
/// 脚本位置:Player游戏对象身上
/// 脚本功能:控制Player移动
/// 创建时间:2015年11月30
/// </summary>
public class PlayerMove : MonoBehaviour
{
// 主角运动速度
private float speed = 5f;

// 主角身上刚体组件
private Rigidbody _rigidbody;

void Start ()
{
_rigidbody = GetComponent<Rigidbody> ();
}

// Update is called once per frame
void Update ()
{
// 通过更改刚体速度向量控制主角移动
_rigidbody.velocity = new Vector3 (Input.GetAxis ("Horizontal"), -0.5f, Input.GetAxis ("Vertical")) * speed;

// 跳跃功能
if (Input.GetKeyDown (KeyCode.Space) ) {
Jump();
}
Debug.DrawRay(transform.position,Vector3.down,Color.black);
}

void Jump()
{

RaycastHit hit;
if (Physics.Raycast (transform.position, Vector3.down, out hit)) {
// 经测试得出默认距离是0.399,既transform.localScale.y的值
if (hit.distance <= 0.4f) {
_rigidbody.AddForce (Vector3.up * 4000);
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: