Woldspace UI Object(text) problem!! need urgent help, admins please
Options
I've been trying this for quite a while but haven't figure out anything yet. What I want to do is to instantiate or just write the taken damage to a text object under a canvas which is world space render mode. I can see this text from me but other player cannot see the text. how do we make this displayed for bot players? I'm sure there is an answer but there's no web page laft n google's first search page that I did not check out. Please somebody give me an advice asap.
so far this is what I tried
so far this is what I tried
[PunRPC] protected void TakeDamage(float damage, DamageType damageType) //rakip ismi buraya { if (damageType ==DamageType.Physical) { float takenDamage = (damage / 1 - PhysicalDefence) * 0.1618f; string takenTemp= $"{takenDamage:00}"; GameObject damageText = PhotonNetwork.Instantiate("DamageText",transform.position,transform.rotation); damageText.GetComponent<RectTransform>().SetParent(gameObject.transform.GetChild(1).transform.GetChild(0).transform); damageText.transform.position = gameObject.transform.GetChild(1).transform.GetChild(0).transform.position; damageText.GetComponent<DisplayDamage>().damage = takenTemp; }
public class DisplayDamage : MonoBehaviourPunCallbacks { public string damage; void Update() { // photonView.RPC("DisplayText", RpcTarget.All, damage); if(photonView.IsMine) gameObject.GetComponent<Text>().text = damage; else gameObject.GetComponent<Text>().text = damage; } /* private void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info) { if (stream.IsWriting) { stream.SendNext(gameObject.GetComponent<Text>().text); } else { } }*/ /* [PunRPC] public void DisplayText(string text) { gameObject.GetComponent<Text>().text = text; }*/ }
0
Comments
-
public void DisplayText(float damage){ GetComponent<Text>().text = damage.ToString(); photonView.RPC("SyncDamage", RpcTarget.Others, damage); } [PunRPC] void SyncDamage(float damage){ GetComponent<Text>().text = damage.ToString(); } //Inside take damage func.: damageText.GetComponent<DisplayDamage>().DisplayText(damage);
Btw why you wouldn't cache damage text? It's much easier to sync.0 -
public void DisplayText(float damage){ GetComponent<Text>().text = damage.ToString(); photonView.RPC("SyncDamage", RpcTarget.Others, damage); } [PunRPC] void SyncDamage(float damage){ GetComponent<Text>().text = damage.ToString(); } //Inside take damage func.: damageText.GetComponent<DisplayDamage>().DisplayText(damage);
Btw why you wouldn't cache damage text? It's much easier to sync.
Now the problem is so weird, everything seem perfect from master but not client, all text looks reversed0 -
I think reversed problem about your text spawn preferences. Check :
GameObject damageText = PhotonNetwork.Instantiate("DamageText",transform.position,transform.rotation);
or world ui canvas settings in editor. If you can share damate text picture inside game maybe I can help more. Because it's totally about your game logic.
0