serezha | Дата: Четверг, 04 Марта 2021, 21:54 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Всем привет! В сетевой игре у меня образовалась проблема:
Надпись "кто в кого попал", которую видят все клиенты-игроки, отображается не у всех одинаково. Дело в том, что у того клиента-игрока который стреляет у него надпись показывает что "враг сам убил себя", а у остальных клиентов-игроков все нормально. Нужно чтобы эта надпись была у всех одинаковая.
Скрипт "Client" висит на персонаже:
using UnityEngine; using System.Collections; public class Client: MonoBehaviour { public float HP = 10; public GameObject GunPointE; public NetworkViewID pID; public NetworkViewID pIDE; public int windSpeed; public bool YM; public bool GUIYM; public bool CTFF; public string Nick = "exa"; public string Nickee = "ece";
void Awake () { Application.runInBackground = true; Nick = "exa"; Nickee = "ece"; pID = GetComponent<NetworkView> ().viewID; Debug.Log (Nick + pID); cam = transform.GetComponentInChildren<Camera>().GetComponent<Camera>(); YM = false; GUIYM = false; CTFF = false; }
[RPC] public void RpcYmer () { NetworkViewID pID = GetComponent<NetworkView> ().viewID; GUIYM = true; }
void Update () { if (HP <= 0 && YM == false && GetComponent<NetworkView>().isMine == true) { GetComponent<NetworkView> ().RPC ("RpcYmer", RPCMode.All); YM = true; } else if (HP > 0) { YM = false; } if(GetComponent<NetworkView>().isMine == true) { if (Input.GetMouseButton (0)) { CTFF = true; } else { CTFF = false; } } }
public void AddDamage(float damage) { if (HP != 0 || HP > 0) { HP -= damage; } }
private void FixedUpdate() { if (CTFF == true & CurAmmo > 0 & ReloadTimer <= 0 & ShootTimer <= 0) { GameObject bulletInstance = (GameObject)Instantiate (Resources.Load ("BulletX444", typeof(GameObject))); bulletInstance.transform.position = GunPointE.transform.position; bulletInstance.GetComponent<Rigidbody> ().AddForce (cam.transform.forward * bulletSpeed); }
public void OnGUI() { if (GUIYM == true) { GUI.Label (new Rect ((Screen.width - 100) / 2, Screen.height / 2 - 60, 500, 20), Nickee + pIDE + " -----> " + Nick + pID); GUI.skin.label.normal.textColor = Color.red; Debug.Log (Nickee + pIDE + " -----> " + Nick + pID); } } }
Скрипт "BulletMove" висит на пуле:
using UnityEngine; using System.Collections; public class BulletMove : MonoBehaviour { public Rigidbody bullet; public float TimeToDestruct = 1.5f; public bool RandomDamage = false; public float Damage = 1; public float minRandLimit = 0; public float maxRandLimit = 0; public bool DamageReduction = false; public float StartPoinOfDamageReduction = 0; public float FinalDamageInPercent = 0; public AnimationCurve DamageReductionGraph; public int StartSpeed = 100; Vector3 PreviousStep; float StartTime; float CurrentDamage; public string Nicke = "ece"; public NetworkViewID pIDT;
void Awake() { Nicke = GameObject.FindObjectOfType<Client> ().Nick; pIDT = GameObject.FindObjectOfType<Client> ().pID; Invoke ("DestroyNow", TimeToDestruct); PreviousStep = gameObject.transform.position; StartTime = Time.time; }
void FixedUpdate() { Quaternion CurrentStep = gameObject.transform.rotation; transform.LookAt (PreviousStep, transform.up); RaycastHit hit = new RaycastHit (); float Distance = Vector3.Distance (PreviousStep, transform.position); if (Distance == 0.0f) Distance = 09999 - 05f; if (Physics.Raycast (PreviousStep, transform.TransformDirection (Vector3.back), out hit, Distance * 0.9999f) && (hit.transform.gameObject != gameObject)) { if (hit.collider.tag == "Player") {//cle.GetComponent<NetworkView>().isMine == false hit.transform.GetComponent<Client>().AddDamage(Damage); hit.transform.GetComponent<Client> ().Nickee = Nicke; hit.transform.GetComponent<Client> ().pIDE = pIDT; Destroy(gameObject); } } gameObject.transform.rotation = CurrentStep; PreviousStep = gameObject.transform.position; } }
void DestroyNow() { DestroyObject (gameObject); }
float GetDamageCoefficient() { float Value = 1.0f; float CurrentTime = Time.time - StartTime; Value = DamageReductionGraph.Evaluate (CurrentTime / TimeToDestruct); return Value; } }
|
|
| |
drcrack | Дата: Пятница, 05 Марта 2021, 01:35 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| Шанс что кто-то захочет в этой каше разбираться крайне мал Оформи нормально в теге code с форматированием
|
|
| |