void Update() { if (input.WasJustPressed(BUTTON.USE)) { if (Time.realtimeSinceStartup - TimeSincePressed > 0.1) { TimeSincePressed = Time.realtimeSinceStartup; if (target != null) { if (TargetPlayer) { GodList.Remove(TargetPlayer as MonoBehaviour); } target = null; TargetPlayer = null; } else { RaycastHit hit; Vector3 raypos = transform.position; raypos.y++; if (Physics.Raycast(new Ray(raypos, Quaternion.Euler(input.current.aimAngles) * Vector3.forward), out hit, MaxDistance) && hit.transform != transform) { target = hit.transform.GetComponentInParent <BaseNetworkable>(); if (target) { distance = Vector3.Distance(transform.position, target.transform.position); TargetPlayer = target.GetComponent <BasePlayer>(); if (TargetPlayer) { GodList.Add(TargetPlayer as MonoBehaviour); } } } } } } else if (input.WasJustPressed(BUTTON.RELOAD)) { if (Time.realtimeSinceStartup - TimeSincePressed > 0.1) { TimeSincePressed = Time.realtimeSinceStartup; IsRotate = !IsRotate; } } if (target) { if (input.IsDown(BUTTON.PREVIOUS)) { distance++; if (distance > MaxDistance) { distance = MaxDistance; } } else if (input.IsDown(BUTTON.NEXT)) { distance--; if (distance < MinDistance) { distance = MinDistance; } } target.transform.position = Vector3.Lerp(target.transform.position, transform.position + Quaternion.Euler(input.current.aimAngles) * Vector3.forward * distance, Time.deltaTime * speed); if (IsRotate) { target.transform.rotation = Quaternion.Euler(input.current.aimAngles * RotateSpeed); } if (TargetPlayer != null && !TargetPlayer.IsSleeping()) { TargetPlayer.ClientRPC(null, TargetPlayer, "ForcePositionTo", new object[] { target.transform.position }); } else { target.SendNetworkUpdate(BasePlayer.NetworkQueue.UpdateDistance); } } }
public GodCollection(IEnumerable <IEntity> collection) { GodList.AddRange(collection); }