【发布时间】:2014-06-17 02:18:49
【问题描述】:
我需要创建打滑或滑倒效果。我想像日落过载一样创建打滑或滑倒效果:
http://i.stack.imgur.com/vmx8f.jpg
当主角在电缆和铁轨上滑倒时。如何创建相同的结果?在 C# 中。观看此视频:https://www.youtube.com/watch?v=zXjNkoQQPls(从 1.20 分钟到 1.25)。我已经创建了这个代码:-OnTrigger-(适用于电缆)
使用 UnityEngine;使用 System.Collections;公共课 OnTriggerEnterScroll : MonoBehaviour {
/*ISTRUZIONI : Inserire questo Script all'interno dell'Elemento che entra in contatto con il Trigger */ public Transform target; // Player AutoMove AutoMoveScript; // richiamo variabili Script AutoMove // Use this for initialization void Start () { AutoMoveScript = target.GetComponent<AutoMove>(); // Richiano componente AutoMove } // Update is called once per frame void Update () { Vector3 targetDir = target.position - transform.position; Debug.Log(targetDir); } void OnTriggerEnter(Collider other) { // Quando il player entra nel Trigger if(other.collider.name == "MainCharacter"){ AutoMoveScript.MoveSpeed = 8; // Cambio variabile di Velocita' AutoMoveScript.activeAutoMoveW = true; // Cambio variabile di scorrimento AutoMoveScript.activeAutoMoveS = false; // Cambio variabile di scorrimento } } void OnTriggerStay(Collider other) { // Quando il player e' nel Trigger if(other.collider.name == "MainCharacter"){ if(Input.GetKey(KeyCode.W)){ AutoMoveScript.activeAutoMoveW = true; // Cambio variabile di scorrimento AutoMoveScript.activeAutoMoveS = false; // Cambio variabile di scorrimento } if(Input.GetKey(KeyCode.S)){ AutoMoveScript.activeAutoMoveS = true; // Cambio variabile di scorrimento AutoMoveScript.activeAutoMoveW = false; // Cambio variabile di scorrimento } } } void OnTriggerExit(Collider other) { // Quando il player esce nel Trigger if(other.collider.name == "MainCharacter"){ AutoMoveScript.MoveSpeed = 8; // Cambio variabile di Velocita' AutoMoveScript.activeAutoMoveS = false; // Cambio variabile di scorrimento AutoMoveScript.activeAutoMoveW = false; // Cambio variabile di scorrimento } } }
-AutoMove-(应用于主要角色)
使用 UnityEngine;使用 System.Collections;公共类 AutoMove : 单一行为{
/*ISTRUZIONI : Inserire questo Script all'interno del Player */ public bool activeAutoMoveW = false; //variabile controllo Forward public bool activeAutoMoveS = false; //variabile controllo Back public int MoveSpeed = 8; //variabile velocità di scorrimento public bool activeSelect = false; //variabile controllo Select // Use this for initialization void Start () { } // Update is called once per frame void Update () { if(activeAutoMoveW == true) { transform.Translate(Vector3.forward * MoveSpeed * Time.fixedDeltaTime, Space.World); // Scorrimento in avari } if(activeAutoMoveS == true) { transform.Translate(Vector3.back * MoveSpeed * Time.fixedDeltaTime, Space.World); // Scorrimento in dietro } if(Input.GetKeyDown(KeyCode.Q) && activeSelect == false) { MoveSpeed = 1; // Cambio variabile di scorrimento activeSelect = true; // Cambio variabile Slect }else if(Input.GetKeyDown(KeyCode.Q) && activeSelect == true) { MoveSpeed = 8; // Cambio variabile di scorrimento activeSelect = false; // Cambio variabile Slect } } }
系统创建了滑倒效果,但不知道角色的方向是什么。
【问题讨论】:
标签: c# unity3d game-physics