Exemplo n.º 1
0
            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);
                    }
                }
            }
Exemplo n.º 2
0
 public GodCollection(IEnumerable <IEntity> collection)
 {
     GodList.AddRange(collection);
 }