So i’m using PUN2 and tryna do nametag billboard for my players but its not working for some reason. I think it has something to do with me destroying the camera on the player controller script. When I load the game the camera is destroyed for the players which has something to do with the phonoview. Im a noob and need some help. Thanks! This is the billboard scriot
using UnityEngine;
using System.Collections;
public class BillBoard : MonoBehaviour
{
private Transform mainCameraTransform;
private void Start()
{
mainCameraTransform = mainCameraTransform.transform;
}
private void LateUpdate()
{
{
transform.LookAt(transform.position + mainCameraTransform.rotation * Vector3.forward,
mainCameraTransform.rotation * Vector3.up);
}
}
}
This is the player controller script:
using Photon.Pun;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
[SerializeField] GameObject cameraHolder;
[SerializeField] float mouseSensitivity, sprintSpeed, walkSpeed, jumpForce, smoothTime;
float verticalLookRotation;
bool grounded;
Vector3 smoothMoveVelocity;
Vector3 moveAmount;
Rigidbody rb;
PhotonView PV;
void Awake()
{
rb = GetComponent<Rigidbody>();
PV = GetComponent<PhotonView>();
}
void Start()
{
if (!PV.IsMine)
{
Destroy(GetComponentInChildren<Camera>().gameObject);
Destroy(rb);
}
}
void Update()
{
if (!PV.IsMine)
return;
Look();
Move();
Jump();
}
void Look()
{
transform.Rotate(Vector3.up * Input.GetAxisRaw("Mouse X") * mouseSensitivity);
verticalLookRotation += Input.GetAxisRaw("Mouse Y") * mouseSensitivity;
verticalLookRotation = Mathf.Clamp(verticalLookRotation, -90f, 90f);
cameraHolder.transform.localEulerAngles = Vector3.left * verticalLookRotation;
}
void Move()
{
Vector3 moveDir = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical")).normalized;
moveAmount = Vector3.SmoothDamp(moveAmount, moveDir * (Input.GetKey(KeyCode.LeftShift) ? sprintSpeed : walkSpeed), ref smoothMoveVelocity, smoothTime);
}
void Jump()
{
if (Input.GetKeyDown(KeyCode.Space) && grounded)
{
rb.AddForce(transform.up * jumpForce);
}
}
public void SetGroundState(bool _grounded)
{
grounded = _grounded;
}
void FixedUpdate()
{
if (!PV.IsMine)
return;
rb.MovePosition(rb.position + transform.TransformDirection(moveAmount) * Time.fixedDeltaTime);
}
}