using System.Collections; using System.Collections.Generic; using Photon.Pun; using UnityEngine; public class SnakePiece : MonoBehaviour, IPunObservable { public SnakeSkinScriptable skin; public Vector2 direction = Vector2.right; public SpriteRenderer spriteRenderer; Vector3 defaultSize; void Awake(){ defaultSize = transform.localScale; } void OnValidate() { if(spriteRenderer == null){ spriteRenderer = GetComponentInChildren(); } } public bool isHead = false; public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info) { if(stream.IsWriting){ stream.SendNext(direction); stream.SendNext(isHead); }else{ direction = (Vector2)stream.ReceiveNext(); isHead = (bool)stream.ReceiveNext(); } } void Update(){ transform.localScale =Vector3.one * (isHead ? skin.headScaleMultiplier : 1); if(isHead){ foreach(SkinData skinData in skin.head){ if(skinData.direction == direction){ spriteRenderer.sprite = skinData.sprite; break; } } }else{ foreach(SkinData skinData in skin.body){ if(skinData.direction == direction){ spriteRenderer.sprite = skinData.sprite; break; } } } } }