Version: 2018.2
public CollisionFlags Move (Vector3 motion);

Description

Более сложная функция движения, принимающая абсолютные дельты перемещения.

Attempts to move the controller by motion, the motion will only be constrained by collisions. It will slide along colliders. CollisionFlags is a summary of collisions that occurred during the Move. This function does not apply any gravity.

using UnityEngine;
using System.Collections;

// The GameObject is made to bounce using the space key. // Also the GameOject can be moved forward/backward and left/right. // Add a Quad to the scene so this GameObject can collider with a floor.

public class ExampleScript : MonoBehaviour { public float speed = 6.0f; public float jumpSpeed = 8.0f; public float gravity = 20.0f;

private Vector3 moveDirection = Vector3.zero; private CharacterController controller;

void Start() { controller = GetComponent<CharacterController>();

// let the gameObject fall down gameObject.transform.position = new Vector3(0, 5, 0); }

void Update() { if (controller.isGrounded) { // We are grounded, so recalculate // move direction directly from axes

moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0.0f, Input.GetAxis("Vertical")); moveDirection = transform.TransformDirection(moveDirection); moveDirection = moveDirection * speed;

if (Input.GetButton("Jump")) { moveDirection.y = jumpSpeed; } }

// Apply gravity moveDirection.y = moveDirection.y - (gravity * Time.deltaTime);

// Move the controller controller.Move(moveDirection * Time.deltaTime); } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961