SpeedModifier
How do I use Speed Modifier
Below are practical examples compiled from projects for learning and reference purposes
Featured Snippets
Line | Code | Ex.. |
---|---|---|
72 | float targetSpeedModifier = Mathf.Abs( v ); | 1 |
File name: IdleRunJump.cs
Copy
33 void Update ()
34 {
35 if( m_PhotonView.isMine == false && PhotonNetwork.connected == true )
36 {
37 return;
38 }
39
40 if (animator)
41 {
42 AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);
43
44 if (stateInfo.IsName("Base Layer.Run"))
45 {
46 if (Input.GetButton("Fire1")) animator.SetBool("Jump", true);
47 }
48 else
49 {
50 animator.SetBool("Jump", false);
51 }
52
53 if(Input.GetButtonDown("Fire2") && animator.layerCount >= 2)
54 {
55 animator.SetBool("Hi", !animator.GetBool("Hi"));
56 }
57
58
59 float h = Input.GetAxis("Horizontal");
60 float v = Input.GetAxis("Vertical");
61
62 if( v < 0 )
63 {
64 v = 0;
65 }
66
67 animator.SetFloat( "Speed", h*h+v*v );
68 animator.SetFloat( "Direction", h, DirectionDampTime, Time.deltaTime );
69
70 float direction = animator.GetFloat( "Direction" );
71
72 float targetSpeedModifier = Mathf.Abs( v );
73
74 if( Mathf.Abs( direction ) > 0.2f )
75 {
76 targetSpeedModifier = TurnSpeedModifier;
77 }
78
79 m_SpeedModifier = Mathf.MoveTowards( m_SpeedModifier, targetSpeedModifier, Time.deltaTime * 25f );
80
81 Vector3 speed = transform.forward * SynchronizedMaxSpeed * m_SpeedModifier;
82 float turnSpeed = direction * SynchronizedTurnSpeed;
83
84 /*float moveDistance = Vector3.Distance( transform.position, m_LastPosition ) / Time.deltaTime;
85
86 if( moveDistance < 4f && turnSpeed == 0f )
87 {
88 speed = transform.forward * moveDistance;
89 }*/
90
91 //Debug.Log( moveDistance );
92 //Debug.Log( speed + " - " + speed.magnitude + " - " + speedModifier + " - " + h + " - " + v );
93
94 m_TransformView.SetSynchronizedValues( speed, turnSpeed );
95
96 //m_LastPosition = transform.position;
97 }
98 }
SpeedModifier 134 lượt xem
Gõ tìm kiếm nhanh...