void InitProxy() { Destroy(movement); movement = null; Destroy(fire); fire = null; Destroy(damage); damage = null; Destroy(boosterController); boosterController = null; Destroy(rigidBody); rigidBody = null; Destroy(collider2d); collider2d = null; // Replace PlayerName PlayerName = ScriptableObject.CreateInstance <StringVariable>(); GetComponentInChildren <TextReplacer>().Variable = PlayerName; // Replace IsDead proxy.IsDead = ScriptableObject.CreateInstance <BoolVariable>(); IsDead.Variable = proxy.IsDead; // Replace WalkSpeed movement.WalkSpeed = ScriptableObject.CreateInstance <FloatVariable>(); boosterController.WalkSpeed = movement.WalkSpeed; // Replace Dash Rate movement.DashRate = ScriptableObject.CreateInstance <FloatVariable>(); boosterController.DashRate = movement.DashRate; // Replace FireRate weaponController.FireRate = ScriptableObject.CreateInstance <FloatVariable>(); fire.FireRate.Variable = weaponController.FireRate; }
void Awake() { PV = GetComponent <PhotonView>(); proxy = GetComponent <CharacterProxy>(); movement = GetComponent <CharacterMovement>(); fire = GetComponent <CharacterFire>(); damage = GetComponent <CharacterDamage>(); boosterController = GetComponent <BoosterController>(); weaponController = GetComponent <WeaponController>(); rigidBody = GetComponent <Rigidbody2D>(); collider2d = GetComponent <Collider2D>(); if (PV.IsMine) { InitLocal(); } else { InitProxy(); } PlayerName.Value = PV.Owner.NickName; NameChangeEvent.Raise(); isAlreadyDead = false; }
void OnCollisionEnter2D(Collision2D collision) { CharacterDamage character = collision.collider.GetComponent <CharacterDamage>(); if (character != null) { character.ReceiveDamage(actorNumber, this, damage); } if (bounceCountLeft == bounceCount) // we remove sender immunity at first bounce { if (ignoreColliders != null) { foreach (Collider2D collider in ignoreColliders) { Physics2D.IgnoreCollision(collider, ownCollider, false); } } } if (bounceCountLeft > 0) { Vector2 newDirection = Vector2.Reflect(direction, collision.GetContact(0).normal); direction = newDirection; rigidBody.velocity = direction * speed; bounceCountLeft--; } else { gameObject.SetActive(false); } }
void OnCollisionEnter2D(Collision2D collision) { if (!hasStopped) { hasStopped = true; CharacterDamage character = collision.collider.GetComponent <CharacterDamage>(); if (character != null) { character.ReceiveDamage(actorNumber, this, damage); } else { gameObject.layer = LayerMask.NameToLayer("Sticky"); rigidBody.bodyType = RigidbodyType2D.Kinematic; rigidBody.velocity = Vector2.zero; if (ignoreColliders != null) { foreach (Collider2D collider in ignoreColliders) { Physics2D.IgnoreCollision(collider, ownCollider, false); } } } } }
void OnCollisionEnter2D(Collision2D collision) { CharacterDamage character = collision.collider.GetComponent <CharacterDamage>(); if (character != null) { character.ReceiveDamage(actorNumber, this, damage); } else { } gameObject.SetActive(false); }