-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPlayerAvatar.cs
More file actions
138 lines (89 loc) · 2.97 KB
/
Copy pathPlayerAvatar.cs
File metadata and controls
138 lines (89 loc) · 2.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
[RequireComponent(typeof(MovableObject))]
public class PlayerAvatar : MonoBehaviour
{
private MovableObject Movable;
private Inputs Input;
private GameObject Head;
// przesunięcie postaci ruch
void Awake()
{
GameObject mainCore = GameObject.FindGameObjectWithTag("GameCore");
this.Input = ManagerBase.GetManager<Inputs>();
this.Head = transform.Find("head").gameObject;
this.Movable = GetComponent<MovableObject>();
if (Head == null)
{
Debug.LogError("brak glowy :D\n dodaj gameobject z nazwa 'head'");
}
}
void Start()
{
}
void LateUpdate()
{
}
void Update()
{
LookUpdate();
MoveUpdate();
}
[HeaderAttribute(header: "x- forward, y- back, z- sideWays")]
public Vector3 NormalMaxVelocity;
[HeaderAttribute(header: "x- forward, y- back, z- sideWays")]
public Vector3 SprintingMaxVelocity;
private float yaw = 0;
private float pitch = 0;
public float maxPitch = 80;
public float minPitch = -80;
public float MouseSensivity = 1;
private Vector2 deltaMove;
private Quaternion rotation;
private void MoveUpdate()
{
deltaMove = this.Input.MoveDirection;
if (deltaMove != Vector2.zero)
{
Vector3 maxVelocity;
// TODO przypisanie
if (this.Input.Shift)
maxVelocity = SprintingMaxVelocity;
else
maxVelocity = NormalMaxVelocity;
float maxSpeed;
if (deltaMove.y > 0)
maxSpeed = maxVelocity.x;
else if (deltaMove.y < 0)
maxSpeed = maxVelocity.y;
else
maxSpeed = maxVelocity.z;
Vector3 directionalVector = new Vector3(deltaMove.x, 0, deltaMove.y);
directionalVector = this.rotation * directionalVector;
directionalVector = directionalVector.normalized * maxSpeed;
this.Movable.CharacterMovement = directionalVector * Time.deltaTime;
}
else
this.Movable.CharacterMovement = Vector3.zero;
}
private void LookUpdate()
{
if (GameLogic.IsPlayerLookRotationSuspended)
return;
Vector2 deltaMouse = this.Input.DeltaMousePosition;
this.yaw += MouseSensivity * deltaMouse.x;
if (yaw < 0)
yaw += 360;
else if (yaw > 360)
yaw -= 360;
this.pitch += MouseSensivity * -deltaMouse.y;
if (this.pitch > maxPitch)
this.pitch = maxPitch;
else if (this.pitch < minPitch)
this.pitch = minPitch;
this.rotation = Quaternion.Euler(this.pitch, this.yaw, 0);
this.Head.transform.rotation = this.rotation;
}
}