I'm not able to synchronize my button football game, help me !!!

Options


I tried all the ways to synchronize the buttons and I couldn't see my script and also a video of the problem has a delay in the movement please someone help me


whenever I move the buttons to a delay
video
https://www.youtube.com/watch?v=jtyqqprkg48




my script

private void sendUnitVelocity()
{
Rigidbody component = GetComponent<Rigidbody>();
float x = component.velocity.x;
float y = component.velocity.y;
if (is_online && gameController.GetComponent<GlobalGameManager30>().myShootTurn)

{

if ((double)x > 0.001f || (double)x < -0.001f || (double)y > 0.001f || (double)y < -0.001f)
{

Vector3 velocity = component.velocity;
Vector3 position = base.gameObject.transform.position;
int ping = PhotonNetwork.GetPing();

object[] eventContent = new object[4]
{

velocity,
position,
base.gameObject.name,
ping
};
RaiseEventOptions raiseEventOptions = new RaiseEventOptions
{
Receivers = ReceiverGroup.Others
};
SendOptions sendOptions = default(SendOptions);
sendOptions.Reliability = true;
SendOptions sendOptions2 = sendOptions;
PhotonNetwork.RaiseEvent(unit_pos_code, eventContent, raiseEventOptions, sendOptions2);
}
}
}

private void updateOnlineSummary()
{
ExitGames.Client.Photon.Hashtable hashtable = new ExitGames.Client.Photon.Hashtable();
if (gameController.GetComponent<GlobalGameManager30>().isServer)
{
hashtable.Add("serverPassCount", GlobalGameManager30.playerPasses);
hashtable.Add("serverShootCount", GlobalGameManager30.playerShoots);
}
else
{
hashtable.Add("clientPassCount", GlobalGameManager30.playerPasses);
hashtable.Add("clientShootCount", GlobalGameManager30.playerShoots);
}
PhotonNetwork.CurrentRoom.SetCustomProperties(hashtable);
}

public void OnEvent(EventData photonEvent)
{
byte EventCode = photonEvent.Code;
if (EventCode != unit_pos_code)
{
return;
}
if (fixedCounter == 1)
{
object[] obj = (object[])photonEvent.CustomData;
Vector3 vector = (Vector3)obj[0];
Vector3 a = (Vector3)obj[1];
object obj2 = obj[2];
int num = (int)obj[3];
int num2 = PhotonNetwork.GetPing() / 2 + num / 2;
if (obj2.ToString().Contains("PlayerUnit"))
{
obj2 = obj2.ToString().Replace("PlayerUnit", "Player2Unit");
}
else if (obj2.ToString().Contains("Player2Unit"))
{
obj2 = obj2.ToString().Replace("Player2Unit", "PlayerUnit");
}
GameObject gameObject = GameObject.Find((string)obj2);
gameObject.GetComponent<Rigidbody>().velocity = vector;
gameObject.transform.position = a + vector * (num2 / 1000);
}
if (!gameController.GetComponent<GlobalGameManager30>().myShootTurn)
{
fixedCounter++;
}
if (fixedCounter > 10)
{
fixedCounter = 0;
}
}
}



((( SCRIPT COMPLETE )))


using ExitGames.Client.Photon;
using Photon.Pun;
using Photon.Realtime;
using System.Collections;
using UnityEngine;

public class playerController30 : MonoBehaviour, IOnEventCallback
{
internal int unitIndex;

public GameObject selectionCircle;

public GameObject CollisionChecker30;

private Vector3 collisioFreePosition;

public bool isInsideTheGate;

private GameObject helperBegin;

private GameObject helperEnd;

private GameObject arrowPlane;

private GameObject shootCircle;

private GameObject aimPivot;

private GameObject aimArrow;

private GameObject aimArrowBody;

private GameObject gameController;

private float currentDistance;

private float safeDistance;

private float pwr;

private Vector3 shootDirectionVector;

public static bool canShoot;

internal float shootTime;

private int timeAllowedToShoot = 10000;

private bool is_online;

public readonly byte unit_pos_code = 5;

private RaycastHit hitInfo;

private Ray ray;

private int fixedCounter =1;

private void OnEnable()
{
PhotonNetwork.AddCallbackTarget(this);
}

private void OnDisable()
{
PhotonNetwork.RemoveCallbackTarget(this);
}

private void Awake()
{
helperBegin = GameObject.FindGameObjectWithTag("mouseHelperBegin");
helperEnd = GameObject.FindGameObjectWithTag("mouseHelperEnd");
arrowPlane = GameObject.FindGameObjectWithTag("helperArrow");
gameController = GameObject.FindGameObjectWithTag("GameController");
shootCircle = GameObject.FindGameObjectWithTag("shootCircle");
aimArrow = GameObject.FindGameObjectWithTag("aimArrow");
aimArrowBody = GameObject.FindGameObjectWithTag("aimArrowBody");
aimPivot = GameObject.FindGameObjectWithTag("aimPivot");
pwr = 0.1f;
currentDistance = 0f;
shootDirectionVector = new Vector3(0f, 0f, 0f);
canShoot = true;
shootTime = timeAllowedToShoot;
arrowPlane.GetComponent<Renderer>().enabled = false;
shootCircle.GetComponent<Renderer>().enabled = false;
aimArrowBody.GetComponent<Renderer>().enabled = false;
isInsideTheGate = false;
collisioFreePosition = new Vector3(0f, 0f, 0f);
}

private void Start()
{
Rigidbody component = GetComponent<Rigidbody>();
if (GlobalGameManager30.gameMode == 3)
{
is_online = true;
}
}

private void Update()
{
if (GlobalGameManager30.playersTurn && base.gameObject.tag == "Player" && !GlobalGameManager30.goalHappened)
{
selectionCircle.GetComponent<Renderer>().enabled = true;
}
else if (GlobalGameManager30.opponentsTurn && base.gameObject.tag == "Player_2" && !GlobalGameManager30.goalHappened)
{
selectionCircle.GetComponent<Renderer>().enabled = true;
}
else
{
selectionCircle.GetComponent<Renderer>().enabled = false;
}
}

private void LateUpdate()
{
PreventStuckInsideGates();
}

public void PreventStuckInsideGates()
{
if (GetComponent<Rigidbody>().velocity.magnitude > 0.05f)
{
isInsideTheGate = false;
return;
}
if (base.transform.position.y < 1f && base.transform.position.y > -2.8f && (base.transform.position.x < -19.3f || base.transform.position.x > 19.3f))
{
isInsideTheGate = true;
}
else
{
isInsideTheGate = false;
}
if (isInsideTheGate && GetComponent<MeshCollider>().enabled)
{
StartCoroutine(FindCollisionFreePosition());
}
}

public IEnumerator FindCollisionFreePosition()
{
new Vector3(0f, 0f, 0f);
GetComponent<MeshCollider>().enabled = false;
for (int j = 0; j < 10; j++)
{
for (int i = 0; i < 20; i++)
{
Vector3 vector = new Vector3((-14.5f + (float)i / 2f) * (0f - Mathf.Sign(base.transform.position.x)), -1f + (float)j / 2f, -0.5f);
MonoBehaviour.print("randomLocation: " + vector);
GameObject tmpCC = UnityEngine.Object.Instantiate(CollisionChecker30, vector, Quaternion.Euler(90f, 0f, 0f));
tmpCC.name = "CC-" + j + "-" + i;
yield return new WaitForSeconds(0.02f);
if (!tmpCC.GetComponent<CollisionChecker30>().isInCollision)
{
Vector3 position = tmpCC.transform.position;
MonoBehaviour.print(j + " - we have found a free position: " + position);
tmpCC.GetComponent<MeshCollider>().enabled = false;
UnityEngine.Object.Destroy(tmpCC);
collisioFreePosition = position;
StartCoroutine(MoveUnitToFreePosition(collisioFreePosition));
yield break;
}
UnityEngine.Object.Destroy(tmpCC);
}
}
}

public IEnumerator MoveUnitToFreePosition(Vector3 _targetPos)
{
GetComponent<Rigidbody>().isKinematic = true;
GetComponent<MeshCollider>().enabled = false;
Vector3 cPos = base.transform.position;
float t = 0f;
while (t < 1f)
{
t += Time.deltaTime * 0.3f;
base.transform.position = new Vector3(Mathf.SmoothStep(cPos.x, _targetPos.x, t), Mathf.SmoothStep(cPos.y, _targetPos.y, t), -0.5f);
yield return 0;
}
if (t >= 1f)
{
GetComponent<Rigidbody>().isKinematic = false;
GetComponent<MeshCollider>().enabled = true;
}
}

private void FixedUpdate()
{

sendUnitVelocity();

}

private void OnMouseDrag()
{
if (canShoot && ((GlobalGameManager30.playersTurn && base.gameObject.tag == "Player") || (GlobalGameManager30.opponentsTurn && base.gameObject.tag == "Player_2")))
{
currentDistance = Vector3.Distance(helperBegin.transform.position, base.transform.position);
if (currentDistance <= GlobalGameManager30.maxDistance)
{
safeDistance = currentDistance;
}
else
{
safeDistance = GlobalGameManager30.maxDistance;
}
pwr = Mathf.Abs(safeDistance) * 9f;
manageArrowTransform();
Vector3 a = helperBegin.transform.position - base.transform.position;
float magnitude = a.magnitude;
helperEnd.transform.position = base.transform.position + a / magnitude * currentDistance * -1f;
helperEnd.transform.position = new Vector3(helperEnd.transform.position.x, helperEnd.transform.position.y, -0.5f);
UnityEngine.Debug.DrawLine(base.transform.position, helperBegin.transform.position, Color.red);
UnityEngine.Debug.DrawLine(base.transform.position, arrowPlane.transform.position, Color.blue);
UnityEngine.Debug.DrawLine(base.transform.position, 2f * base.transform.position - helperBegin.transform.position, Color.yellow);
castRay();
shootDirectionVector = Vector3.Normalize(helperBegin.transform.position - base.transform.position);
}
}

private void sweepTest()
{
if (GetComponent<Rigidbody>().SweepTest((helperEnd.transform.position - base.transform.position).normalized, out RaycastHit raycastHit, 15f))
{
MonoBehaviour.print("if hit ??? : " + raycastHit.distance + " - " + raycastHit.transform.gameObject.name);
}
}

private void castRay()
{
ray = new Ray(base.transform.position, (helperEnd.transform.position - base.transform.position).normalized);
if (Physics.Raycast(ray, out hitInfo, currentDistance))
{
GameObject gameObject = hitInfo.transform.gameObject;
UnityEngine.Debug.DrawLine(ray.origin, hitInfo.point, Color.cyan);
Vector3 vector = Vector3.Reflect(hitInfo.point - ray.origin, hitInfo.normal);
UnityEngine.Debug.DrawRay(hitInfo.point, vector, Color.gray, 0.2f);
UnityEngine.Debug.DrawRay(hitInfo.transform.position, vector * -1f, Color.white, 0.2f);
UnityEngine.Debug.DrawRay(hitInfo.transform.position, hitInfo.normal * -3f, Color.red, 0.2f);
}
}

private void manageArrowTransform()
{
if (currentDistance < 0.75f)
{
arrowPlane.GetComponent<Renderer>().enabled = false;
shootCircle.GetComponent<Renderer>().enabled = false;
aimArrowBody.GetComponent<Renderer>().enabled = false;
return;
}
arrowPlane.GetComponent<Renderer>().enabled = true;
shootCircle.GetComponent<Renderer>().enabled = true;
aimArrowBody.GetComponent<Renderer>().enabled = true;
if (currentDistance <= GlobalGameManager30.maxDistance)
{
arrowPlane.transform.position = base.transform.position + new Vector3(0f, 0f, 0.03f);
}
else
{
float magnitude = (helperBegin.transform.position - base.transform.position).magnitude;
arrowPlane.transform.position = base.transform.position + new Vector3(0f, 0f, 0.03f);
}
shootCircle.transform.position = base.transform.position + new Vector3(0f, 0f, 0.05f);
Vector3 from = helperBegin.transform.position - base.transform.position;
float z = (!(Vector3.Angle(from, base.transform.forward) > 90f)) ? (Vector3.Angle(from, base.transform.right) * -1f) : Vector3.Angle(from, base.transform.right);
arrowPlane.transform.eulerAngles = new Vector3(0f, 0f, z);
float num = Mathf.Log(1f + safeDistance / 2f, 2f) * 2.2f;
float num2 = Mathf.Log(1f + safeDistance / 2f, 2f) * 2.2f;
arrowPlane.transform.localScale = new Vector3(1f + num * 3f, 1f + num2 * 3f, 0.001f);
aimArrow.transform.position = aimPivot.transform.position + new Vector3(0f, 0f, 0f);
aimArrow.transform.eulerAngles = new Vector3(0f, 0f, z);
if (GlobalGameManager30.playersTurn && base.gameObject.tag == "Player")
{
aimArrow.transform.localScale = new Vector3(1.5f + GlobalGameSettings30.instance.availableTeams[PlayerPrefs.GetInt("PlayerFlag")].teamAttributes.z / 2.5f, 1.5f + GlobalGameSettings30.instance.availableTeams[PlayerPrefs.GetInt("PlayerFlag")].teamAttributes.z / 2.5f, 0.01f) * -1f;
}
else if (GlobalGameManager30.opponentsTurn && base.gameObject.tag == "Player_2")
{
aimArrow.transform.localScale = new Vector3(1.5f + GlobalGameSettings30.instance.availableTeams[PlayerPrefs.GetInt("Player2Flag")].teamAttributes.z / 2.5f, 1.5f + GlobalGameSettings30.instance.availableTeams[PlayerPrefs.GetInt("Player2Flag")].teamAttributes.z / 2.5f, 0.01f) * -1f;
}
shootCircle.transform.localScale = new Vector3(1f + num * 3f, 1f + num2 * 3f, 0.05f);
if (is_online)
{
raiseShowArrowEvent(arrowPlane.transform.position, arrowPlane.transform.eulerAngles, arrowPlane.transform.localScale, shootCircle.transform.position, shootCircle.transform.localScale, aimArrow.transform.eulerAngles, aimArrow.transform.localScale);
}
}

private void OnMouseUp()
{
if ((GlobalGameManager30.playersTurn && base.gameObject.tag == "Player_2") || (GlobalGameManager30.opponentsTurn && base.gameObject.tag == "Player"))
{
arrowPlane.GetComponent<Renderer>().enabled = false;
shootCircle.GetComponent<Renderer>().enabled = false;
aimArrowBody.GetComponent<Renderer>().enabled = false;
if (is_online)
{
raiseHideArrowEvent();
}
return;
}
MonoBehaviour.print("currentDistance: " + currentDistance);
if (currentDistance < 0.75f)
{
arrowPlane.GetComponent<Renderer>().enabled = false;
shootCircle.GetComponent<Renderer>().enabled = false;
aimArrowBody.GetComponent<Renderer>().enabled = false;
if (is_online)
{
raiseHideArrowEvent();
}
}
else
{
if (!canShoot)
{
return;
}
canShoot = false;
shootTime = Time.time;
arrowPlane.GetComponent<Renderer>().enabled = false;
shootCircle.GetComponent<Renderer>().enabled = false;
aimArrowBody.GetComponent<Renderer>().enabled = false;
if (is_online)
{
raiseHideArrowEvent();
}
Vector3 vector = shootDirectionVector * pwr * -1f;
if (GlobalGameManager30.playersTurn && base.gameObject.tag == "Player")
{
vector *= 1f + GlobalGameSettings30.instance.availableTeams[PlayerPrefs.GetInt("PlayerFlag")].teamAttributes.x / 35f;
}
else if (GlobalGameManager30.opponentsTurn && base.gameObject.tag == "Player_2")
{
vector *= 1f + GlobalGameSettings30.instance.availableTeams[PlayerPrefs.GetInt("Player2Flag")].teamAttributes.x / 35f;
}
if (vector.magnitude >= 40f)
{
vector *= 0.85f;
}
MonoBehaviour.print("shoot power: " + vector.magnitude);
GetComponent<Rigidbody>().AddForce(vector, ForceMode.Impulse);
if (GlobalGameManager30.gameMode == 0)
{
if (vector.magnitude > 24f)
{
GlobalGameManager30.playerShoots++;
}
else
{
GlobalGameManager30.playerPasses++;
}
}
else if (GlobalGameManager30.gameMode == 1 || GlobalGameManager30.gameMode == 3)
{
if (vector.magnitude > 24f)
{
if (base.gameObject.tag == "Player")
{
GlobalGameManager30.playerShoots++;
}
else if (base.gameObject.tag == "Player_2")
{
GlobalGameManager30.opponentShoots++;
}
}
else if (base.gameObject.tag == "Player")
{
GlobalGameManager30.playerPasses++;
}
else if (base.gameObject.tag == "Player_2")
{
GlobalGameManager30.opponentPasses++;
}
if (is_online)
{
updateOnlineSummary();
}
}
if (GlobalGameManager30.gameMode == 0)
{
StartCoroutine(gameController.GetComponent<GlobalGameManager30>().managePostShoot("Player"));
}
else if (GlobalGameManager30.gameMode == 1 || GlobalGameManager30.gameMode == 3)
{
StartCoroutine(gameController.GetComponent<GlobalGameManager30>().managePostShoot(base.gameObject.tag));
}
if (gameController.GetComponent<GlobalGameManager30>().isOnline)
{
gameController.GetComponent<GlobalGameManager30>().sendPostShootEvent("Player_2");


}
}
}

private void raiseShowArrowEvent(Vector3 arrowPlane_pos, Vector3 arrowPlane_angle, Vector3 arrowPlane_scale, Vector3 circle_pos, Vector3 circle_scale, Vector3 aimArrow_angle, Vector3 aimArrow_scale)
{
byte showArrowCode = GameObject.FindGameObjectWithTag("playerAI").GetComponent<PlayerAI30>().showArrowCode;
object[] eventContent = new object[7]
{
arrowPlane_pos,
arrowPlane_angle,
arrowPlane_scale,
circle_pos,
circle_scale,
aimArrow_angle,
aimArrow_scale
};
RaiseEventOptions raiseEventOptions = new RaiseEventOptions
{
Receivers = ReceiverGroup.Others
};
SendOptions sendOptions = default(SendOptions);
sendOptions.Reliability = true;
SendOptions sendOptions2 = sendOptions;
PhotonNetwork.RaiseEvent(showArrowCode, eventContent, raiseEventOptions, sendOptions2);
}

private void raiseHideArrowEvent()
{
byte hideArrowCode = GameObject.FindGameObjectWithTag("playerAI").GetComponent<PlayerAI30>().hideArrowCode;
RaiseEventOptions raiseEventOptions = new RaiseEventOptions
{
Receivers = ReceiverGroup.Others
};
SendOptions sendOptions = new SendOptions
{
Reliability = true
};
PhotonNetwork.RaiseEvent(hideArrowCode, null, raiseEventOptions, sendOptions);
}

private void sendUnitVelocity()
{
Rigidbody component = GetComponent<Rigidbody>();
float x = component.velocity.x;
float y = component.velocity.y;
if (is_online && gameController.GetComponent<GlobalGameManager30>().myShootTurn)

{

if ((double)x > 0.001f || (double)x < -0.001f || (double)y > 0.001f || (double)y < -0.001f)
{

Vector3 velocity = component.velocity;
Vector3 position = base.gameObject.transform.position;
int ping = PhotonNetwork.GetPing();

object[] eventContent = new object[4]
{

velocity,
position,
base.gameObject.name,
ping
};
RaiseEventOptions raiseEventOptions = new RaiseEventOptions
{
Receivers = ReceiverGroup.Others
};
SendOptions sendOptions = default(SendOptions);
sendOptions.Reliability = true;
SendOptions sendOptions2 = sendOptions;
PhotonNetwork.RaiseEvent(unit_pos_code, eventContent, raiseEventOptions, sendOptions2);
}
}
}

private void updateOnlineSummary()
{
ExitGames.Client.Photon.Hashtable hashtable = new ExitGames.Client.Photon.Hashtable();
if (gameController.GetComponent<GlobalGameManager30>().isServer)
{
hashtable.Add("serverPassCount", GlobalGameManager30.playerPasses);
hashtable.Add("serverShootCount", GlobalGameManager30.playerShoots);
}
else
{
hashtable.Add("clientPassCount", GlobalGameManager30.playerPasses);
hashtable.Add("clientShootCount", GlobalGameManager30.playerShoots);
}
PhotonNetwork.CurrentRoom.SetCustomProperties(hashtable);
}

public void OnEvent(EventData photonEvent)
{
byte EventCode = photonEvent.Code;
if (EventCode != unit_pos_code)
{
return;
}
if (fixedCounter == 1)
{
object[] obj = (object[])photonEvent.CustomData;
Vector3 vector = (Vector3)obj[0];
Vector3 a = (Vector3)obj[1];
object obj2 = obj[2];
int num = (int)obj[3];
int num2 = PhotonNetwork.GetPing() / 2 + num / 2;
if (obj2.ToString().Contains("PlayerUnit"))
{
obj2 = obj2.ToString().Replace("PlayerUnit", "Player2Unit");
}
else if (obj2.ToString().Contains("Player2Unit"))
{
obj2 = obj2.ToString().Replace("Player2Unit", "PlayerUnit");
}
GameObject gameObject = GameObject.Find((string)obj2);
gameObject.GetComponent<Rigidbody>().velocity = vector;
gameObject.transform.position = a + vector * (num2 / 1000);
}
if (!gameController.GetComponent<GlobalGameManager30>().myShootTurn)
{
fixedCounter++;
}
if (fixedCounter > 10)
{
fixedCounter = 0;
}
}
}

Comments

  • Tobias
    Options
    I think I replied to one of your posts somewhere.
    Please don't "spam" the forum and don't ping individual members of the team, unless we ask for that. This forum is primarily for help among the community and it's key to present the question in a way that can be answered...

    This is not the level of support we (as in Exit Games, the makers of Photon) can give. We can not debug your code and or project.
  • can you help me with my problem?
  • I tried all the ways to synchronize the buttons and I couldn't see my script and also a video of the problem has a delay in the movement please someone help me


    whenever I move the buttons to a delay
    video
    https://www.youtube.com/watch?v=jtyqqprkg48

    my script

    private void sendUnitVelocity()
    {
    Rigidbody component = GetComponent<Rigidbody>();
    float x = component.velocity.x;
    float y = component.velocity.y;
    if (is_online && gameController.GetComponent<GlobalGameManager30>().myShootTurn)

    {

    if ((double)x > 0.001f || (double)x < -0.001f || (double)y > 0.001f || (double)y < -0.001f)
    {

    Vector3 velocity = component.velocity;
    Vector3 position = base.gameObject.transform.position;
    int ping = PhotonNetwork.GetPing();

    object[] eventContent = new object[4]
    {

    velocity,
    position,
    base.gameObject.name,
    ping
    };
    RaiseEventOptions raiseEventOptions = new RaiseEventOptions
    {
    Receivers = ReceiverGroup.Others
    };
    SendOptions sendOptions = default(SendOptions);
    sendOptions.Reliability = true;
    SendOptions sendOptions2 = sendOptions;
    PhotonNetwork.RaiseEvent(unit_pos_code, eventContent, raiseEventOptions, sendOptions2);
    }
    }
    }

    private void updateOnlineSummary()
    {
    ExitGames.Client.Photon.Hashtable hashtable = new ExitGames.Client.Photon.Hashtable();
    if (gameController.GetComponent<GlobalGameManager30>().isServer)
    {
    hashtable.Add("serverPassCount", GlobalGameManager30.playerPasses);
    hashtable.Add("serverShootCount", GlobalGameManager30.playerShoots);
    }
    else
    {
    hashtable.Add("clientPassCount", GlobalGameManager30.playerPasses);
    hashtable.Add("clientShootCount", GlobalGameManager30.playerShoots);
    }
    PhotonNetwork.CurrentRoom.SetCustomProperties(hashtable);
    }

    public void OnEvent(EventData photonEvent)
    {
    byte EventCode = photonEvent.Code;
    if (EventCode != unit_pos_code)
    {
    return;
    }
    if (fixedCounter == 1)
    {
    object[] obj = (object[])photonEvent.CustomData;
    Vector3 vector = (Vector3)obj[0];
    Vector3 a = (Vector3)obj[1];
    object obj2 = obj[2];
    int num = (int)obj[3];
    int num2 = PhotonNetwork.GetPing() / 2 + num / 2;
    if (obj2.ToString().Contains("PlayerUnit"))
    {
    obj2 = obj2.ToString().Replace("PlayerUnit", "Player2Unit");
    }
    else if (obj2.ToString().Contains("Player2Unit"))
    {
    obj2 = obj2.ToString().Replace("Player2Unit", "PlayerUnit");
    }
    GameObject gameObject = GameObject.Find((string)obj2);
    gameObject.GetComponent<Rigidbody>().velocity = vector;
    gameObject.transform.position = a + vector * (num2 / 1000);
    }
    if (!gameController.GetComponent<GlobalGameManager30>().myShootTurn)
    {
    fixedCounter++;
    }
    if (fixedCounter > 10)
    {
    fixedCounter = 0;
    }
    }
    }