Arm-swing and joystick locomotion

This commit is contained in:
2022-03-21 17:09:21 +02:00
parent 84e21c94f3
commit e2e9f175bb
25 changed files with 278 additions and 22 deletions

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 20b2cd43130816e429a419c3adf589b0
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,64 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ArmSwingLocomotion : MonoBehaviour
{
public GameObject LeftHand;
public GameObject RightHand;
public GameObject CenterEyeCamera;
public GameObject ForwardDirection;
private Vector3 PositionPreviousFrameLeftHand;
private Vector3 PositionPreviousFrameRightHand;
private Vector3 PlayerPositionPreviousFrame;
private Vector3 PlayerPositionCurrentFrame;
private Vector3 PositionCurrentFrameLeftHand;
private Vector3 PositionCurrentFrameRightHand;
public float Speed;
private float HandSpeed;
// Start is called before the first frame update
void Start()
{
PlayerPositionPreviousFrame = transform.position;
PositionPreviousFrameLeftHand = LeftHand.transform.position;
PlayerPositionPreviousFrame = RightHand.transform.position;
}
// Update is called once per frame
void Update()
{
float Yrot = CenterEyeCamera.transform.eulerAngles.y;
ForwardDirection.transform.eulerAngles = new Vector3(0, Yrot, 0);
PositionCurrentFrameLeftHand = LeftHand.transform.position;
PositionCurrentFrameRightHand = RightHand.transform.position;
PlayerPositionCurrentFrame = transform.position;
//Debug.Log("Previous" + PositionPreviousFrameLeftHand);
//Debug.Log("Current" + PositionCurrentFrameLeftHand);
var playerDistanceMoved = Vector3.Distance(PlayerPositionCurrentFrame, PlayerPositionPreviousFrame);
var leftHandDistanceMoved = Vector3.Distance(PositionCurrentFrameLeftHand, PositionPreviousFrameLeftHand);
var rightHandDistanceMoved = Vector3.Distance(PositionCurrentFrameRightHand, PositionPreviousFrameRightHand);
HandSpeed = ((leftHandDistanceMoved - playerDistanceMoved) + (rightHandDistanceMoved - playerDistanceMoved));
if (Time.timeSinceLevelLoad > 1f)
{
transform.position += ForwardDirection.transform.forward * HandSpeed * Speed * Time.deltaTime;
}
PositionPreviousFrameLeftHand = PositionCurrentFrameLeftHand;
PositionPreviousFrameRightHand = PositionCurrentFrameRightHand;
PlayerPositionPreviousFrame = PlayerPositionCurrentFrame;
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: cb6b66c1ad57ba249be7d5b3edef8a9e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: