您的位置:首页 > 编程语言

角色控制器之移动与飞行 [代码清单6-4]

2016-04-16 23:29 393 查看
Unity3d 游戏开发 宣雨松著 角色控制器的移动(旋转、向前、向后移动等)和飞行操作。

using UnityEngine;
using System.Collections;

public class Script_06_06 : MonoBehaviour {

private CharacterController controller = null;
private float moveSpeed = 3.0f;
private float rotateSpeed = 3.0f;

// Use this for initialization
void Start () {
// 获取角色控制器对象
controller = GetComponent<CharacterController>();
}

// Update is called once per frame
void OnGUI () {

if (GUILayout.RepeatButton("向左旋转", GUILayout.Height(50)))
{
transform.Rotate(0, -rotateSpeed, 0);

}

if (GUILayout.RepeatButton("向右旋转", GUILayout.Height(50)))
{
transform.Rotate(0, rotateSpeed, 0);
}

if (GUILayout.RepeatButton("向上旋转", GUILayout.Height(50)))
{
transform.Rotate(rotateSpeed, 0, 0);
}

if (GUILayout.RepeatButton("向下旋转", GUILayout.Height(50)))
{
transform.Rotate(-rotateSpeed, 0, 0);
}

if (GUILayout.RepeatButton("向前移动", GUILayout.Height(50)))
{
Vector3 forward = transform.TransformDirection(Vector3.forward);
controller.Move(forward * moveSpeed);

}

if (GUILayout.RepeatButton("向后移动", GUILayout.Height(50)))
{
Vector3 forward = transform.TransformDirection(Vector3.forward);
controller.Move(-forward * moveSpeed);

}

if (GUILayout.RepeatButton("起飞", GUILayout.Height(50)))
{
transform.Translate(0, 1, 0);
}

if (GUILayout.RepeatButton("降落", GUILayout.Height(50)))
{
transform.Translate(0, -1, 0);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: