Xingwei Zhu
3 年前
当前提交
ae1860de
共有 6 个文件被更改,包括 48 次插入 和 178 次删除
-
2AwesomeUIWidgets/Assets/FirstPersion AIO Pack/FirstPersonAIO/FirstPersonAIO.cs
-
94AwesomeUIWidgets/Assets/Scenes/ShowRoom.unity
-
74AwesomeUIWidgets/Assets/Scripts/Utils/FlyCamera.cs
-
3AwesomeUIWidgets/Assets/Scripts/Utils/FlyCamera.cs.meta
-
42AwesomeUIWidgets/Assets/Scripts/Utils/Example.cs
-
11AwesomeUIWidgets/Assets/Scripts/Utils/Example.cs.meta
|
|||
using UnityEngine; |
|||
using System.Collections; |
|||
|
|||
namespace UIWidgetsSample.Utils |
|||
{ |
|||
|
|||
public class FlyCamera : MonoBehaviour { |
|||
/* |
|||
Writen by Windexglow 11-13-10. Use it, edit it, steal it I don't care. |
|||
Converted to C# 27-02-13 - no credit wanted. |
|||
Simple flycam I made, since I couldn't find any others made public. |
|||
Made simple to use (drag and drop, done) for regular keyboard layout |
|||
wasd : basic movement |
|||
shift : Makes camera accelerate |
|||
space : Moves camera on X and Z axis only. So camera doesn't gain any height*/ |
|||
|
|||
|
|||
float mainSpeed = 10.0f; //regular speed
|
|||
float shiftAdd = 25.0f; //multiplied by how long shift is held. Basically running
|
|||
float maxShift = 100.0f; //Maximum speed when holdin gshift
|
|||
float camSens = 0.025f; //How sensitive it with mouse
|
|||
private Vector3 lastMouse = new Vector3(255, 255, 255); //kind of in the middle of the screen, rather than at the top (play)
|
|||
private float totalRun= 1.0f; |
|||
|
|||
void Update () { |
|||
lastMouse = Input.mousePosition - lastMouse ; |
|||
lastMouse = new Vector3(-lastMouse.y * camSens, lastMouse.x * camSens, 0 ); |
|||
lastMouse = new Vector3(transform.eulerAngles.x + lastMouse.x , transform.eulerAngles.y + lastMouse.y, 0); |
|||
transform.eulerAngles = lastMouse; |
|||
lastMouse = Input.mousePosition; |
|||
//Mouse camera angle done.
|
|||
|
|||
//Keyboard commands
|
|||
float f = 0.0f; |
|||
Vector3 p = GetBaseInput(); |
|||
if (p.sqrMagnitude > 0){ // only move while a direction key is pressed
|
|||
if (Input.GetKey (KeyCode.LeftShift)){ |
|||
totalRun += Time.deltaTime; |
|||
p = p * totalRun * shiftAdd; |
|||
p.x = Mathf.Clamp(p.x, -maxShift, maxShift); |
|||
p.y = Mathf.Clamp(p.y, -maxShift, maxShift); |
|||
p.z = Mathf.Clamp(p.z, -maxShift, maxShift); |
|||
} else { |
|||
totalRun = Mathf.Clamp(totalRun * 0.5f, 1f, 1000f); |
|||
p = p * mainSpeed; |
|||
} |
|||
|
|||
p = p * Time.deltaTime; |
|||
Vector3 newPosition = transform.position; |
|||
transform.Translate(p); |
|||
newPosition.x = transform.position.x; |
|||
newPosition.z = transform.position.z; |
|||
transform.position = newPosition; |
|||
} |
|||
} |
|||
|
|||
private Vector3 GetBaseInput() { //returns the basic values, if it's 0 than it's not active.
|
|||
Vector3 p_Velocity = new Vector3(); |
|||
if (Input.GetKey (KeyCode.W)){ |
|||
p_Velocity += new Vector3(0, 0 , 1); |
|||
} |
|||
if (Input.GetKey (KeyCode.S)){ |
|||
p_Velocity += new Vector3(0, 0, -1); |
|||
} |
|||
if (Input.GetKey (KeyCode.A)){ |
|||
p_Velocity += new Vector3(-1, 0, 0); |
|||
} |
|||
if (Input.GetKey (KeyCode.D)){ |
|||
p_Velocity += new Vector3(1, 0, 0); |
|||
} |
|||
return p_Velocity; |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: fa13d135935f44918e471d91455f0d30 |
|||
timeCreated: 1623743119 |
|
|||
using UnityEngine; |
|||
|
|||
public class Example : MonoBehaviour |
|||
{ |
|||
private CharacterController controller; |
|||
private Vector3 playerVelocity; |
|||
private bool groundedPlayer; |
|||
private float playerSpeed = 2.0f; |
|||
private float jumpHeight = 1.0f; |
|||
private float gravityValue = -9.81f; |
|||
|
|||
private void Start() |
|||
{ |
|||
controller = gameObject.GetComponent<CharacterController>(); |
|||
} |
|||
|
|||
void Update() |
|||
{ |
|||
groundedPlayer = controller.isGrounded; |
|||
if (groundedPlayer && playerVelocity.y < 0) |
|||
{ |
|||
playerVelocity.y = 0f; |
|||
} |
|||
|
|||
Vector3 move = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); |
|||
controller.Move(move * Time.deltaTime * playerSpeed); |
|||
|
|||
if (move != Vector3.zero) |
|||
{ |
|||
gameObject.transform.forward = move; |
|||
} |
|||
|
|||
// Changes the height position of the player..
|
|||
if (Input.GetButtonDown("Jump") && groundedPlayer) |
|||
{ |
|||
playerVelocity.y += Mathf.Sqrt(jumpHeight * -3.0f * gravityValue); |
|||
} |
|||
|
|||
playerVelocity.y += gravityValue * Time.deltaTime; |
|||
controller.Move(playerVelocity * Time.deltaTime); |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 23f31ca20a8b8404886b19ce8e024684 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
撰写
预览
正在加载...
取消
保存
Reference in new issue