コード例 #1
0
ファイル: Weapon.cs プロジェクト: kkolyan-01/Tower-Shooter
    private void SetBulletDirection(Bullet bullet)
    {
        Vector3 hitPosition   = RaycastUtility.GetRaycastMousePosition();
        Vector3 shotDirection = Vector3.Normalize(hitPosition - _shootPosition.position);

        bullet.direction = shotDirection;
    }
コード例 #2
0
        private void GenerateGameItems()
        {
            var config = SingletonManager.Get <GameItemConfigManager>().GetConfig();
            var list   = new System.Collections.Generic.List <int>();

            foreach (var item in config.Items)
            {
                list.Add(item.Id);
            }
            var r                = new System.Random();
            var basePos          = SingletonManager.Get <MapConfigManager>().SceneParameters.PlayerBirthPosition;
            int sceneObjectCount = list.Count;

            for (int i = 0; i < sceneObjectCount; i++)
            {
                var id    = list[i % list.Count];
                var count = 1;
                var time  = 1;
                while (time-- > 0)
                {
                    _contexts.session.entityFactoryObject.SceneObjectEntityFactory.CreateSimpleObjectEntity(
                        ECategory.GameItem,
                        id,
                        count,
                        RaycastUtility.GetLegalPosition(new Vector3(basePos.x + r.Next(-10, 10), basePos.y, basePos.z + r.Next(-10, 10))));
                }
            }
        }
コード例 #3
0
    private void UpdateMoveState()
    {
        Vector3 hitPosition = RaycastUtility.GetRaycastMousePosition();

        if (hitPosition != Vector3.zero)
        {
            _player.SetState(new MoveState(_player, hitPosition));
        }
    }
コード例 #4
0
    public void Execute()
    {
        if (InputManager.actionButtonDown)
        {
            Vector3 hitPosition = RaycastUtility.GetRaycastMousePosition();

            if (hitPosition != Vector3.zero)
            {
                _player.SetState(new MoveState(_player, hitPosition));
            }
        }
    }
コード例 #5
0
ファイル: RaycastEmitter.cs プロジェクト: VivaKsis/Maze
    public bool Raycast(Ray ray, out RaycastHit raycastHit)
    {
#if UNITY_EDITOR
        if (this._editorOnlyDebug)
        {
            Debug.DrawRay(ray.origin, ray.direction * this._raycastData._MaxDistance, this._editorOnlyDebugColor);
        }
#endif

        return(RaycastUtility.Raycast(
                   ray: ray,
                   raycastHit: out raycastHit,
                   raycastData: this._raycastData
                   ));
    }
コード例 #6
0
    public void Execute()
    {
        Ray     mouseRay = RaycastUtility.GetMouseRay();
        Vector3 point    = RaycastUtility.GetRaycastPosition(mouseRay);

        _player.RotateToPoint(point);

        if (InputManager.actionButtonPressed && point != Vector3.zero)
        {
            if (_weapon.Shoot())
            {
                _player.animator.SetTrigger("Shoot");
            }
        }
    }
コード例 #7
0
ファイル: RaycastEmitter.cs プロジェクト: VivaKsis/Maze
    public bool Raycast(Vector3 origin, Vector3 direction, out RaycastHit raycastHit)
    {
#if UNITY_EDITOR
        if (this._editorOnlyDebug)
        {
            Debug.DrawRay(origin, direction * this._raycastData._MaxDistance, this._editorOnlyDebugColor);
        }
#endif

        return(RaycastUtility.Raycast(
                   origin: origin,
                   direction: direction,
                   raycastHit: out raycastHit,
                   raycastData: this._raycastData
                   ));
    }
コード例 #8
0
 public void FixedUpdate()
 {
     if (awake && HasPlayer)
     {
         if (Player.Player.quests.isMarkerPlaced)
         {
             if (Player.Player.quests.markerPosition != LastPos)
             {
                 LastPos = Player.Player.quests.markerPosition;
                 RaycastResult Raycast = RaycastUtility.Raycast(new Vector3(LastPos.x, 1024, LastPos.z), Vector3.down, RayMasks.GROUND | RayMasks.GROUND2 | RayMasks.STRUCTURE | RayMasks.ENVIRONMENT | RayMasks.LARGE
                                                                | RayMasks.MEDIUM | RayMasks.SMALL | RayMasks.RESOURCE | RayMasks.BARRICADE, 1024);
                 if (Raycast.RaycastHit)
                 {
                     Player.Teleport(new Vector3(Raycast.Raycast.point.x, Raycast.Raycast.point.y + 1, Raycast.Raycast.point.z), Player.Rotation);
                 }
             }
         }
     }
 }
コード例 #9
0
        public static EnvironmentInfo GetEnvironmentInfoByHitBoxName(RaycastHit hit, Vector3 velocity, out ThicknessInfo thicknessInfo)
        {
            var go = hit.transform.gameObject;

            if (go.layer == UnityLayerManager.GetLayerIndex(EUnityLayerName.Water) || go.layer == UnityLayerManager.GetLayerIndex(EUnityLayerName.WaterTrigger))
            {
                thicknessInfo = new ThicknessInfo
                {
                    Normal    = Vector3.up,
                    OutPoint  = hit.point,
                    Thickness = float.MaxValue,
                };
                return(new EnvironmentInfo
                {
                    LayerCount = 1,
                    Thickness = float.MaxValue,
                    Type = EEnvironmentType.Water,
                });
            }
            else
            {
                var name    = RaycastUtility.GetMaterialByHit(hit);
                var envType = SingletonManager.Get <EnvironmentTypeConfigManager>().GetEnvironmentTypeByMatName(name);

                if (RaycastUtility.GetColliderThickness(hit, velocity, out thicknessInfo))
                {
                    var info = new EnvironmentInfo()
                    {
                        Type       = envType,
                        Thickness  = thicknessInfo.Thickness,
                        LayerCount = 1
                    };
                    return(info);
                }
                return(new EnvironmentInfo
                {
                    Type = envType,
                    Thickness = envType == EEnvironmentType.Glass ? 0.1f : float.MaxValue,
                    LayerCount = 1
                });
            }
        }
コード例 #10
0
        public void OnGamePlay()
        {
            if (entity == null || entity.isFlagDestroy)
            {
                entity = (SceneObjectEntity)_contexts.session.entityFactoryObject.SceneObjectEntityFactory
                         .CreateSimpleObjectEntity(
                    ECategory.GameItem,
                    104,
                    1,
                    RaycastUtility.GetLegalPosition(new UnityEngine.Vector3(0, 100, 0)));
            }
            else
            {
                var time = _contexts.session.currentTimeObject.CurrentTime;

                var p = time % 6000 / 6000f;

                entity.position.Value = new UnityEngine.Vector3(Mathf.Sin(360 * Mathf.Deg2Rad * p) * 5, 2, Mathf.Cos(360 * Mathf.Deg2Rad * p) * 5);
                entity.ReplaceFlagImmutability(_contexts.session.currentTimeObject.CurrentTime);
            }
        }
コード例 #11
0
        public void Execute(IRocketPlayer caller, string[] command)
        {
            var raycast = RaycastUtility.RayCastPlayer((UnturnedPlayer)caller, RayMasks.BARRICADE | RayMasks.STRUCTURE | RayMasks.VEHICLE, 500);

            if (raycast.RaycastHit)
            {
                ulong  ID = 0;
                string name;

                if (raycast.Barricade != null)
                {
                    ID = raycast.Barricade.owner;
                }
                else if (raycast.Structure != null)
                {
                    ID = raycast.Structure.owner;
                }
                else if (raycast.Vehicle != null)
                {
                    ID = raycast.Vehicle.lockedOwner.m_SteamID;
                }

                name = AdminToolsPlugin.Instance.GetPlayerName(ID, "Unknown Player");

                InteractableBed b = raycast.TryGetEntity <InteractableBed>();

                if (b != null && b.owner != CSteamID.Nil)
                {
                    ulong  bedID   = b.owner.m_SteamID;
                    string bedName = AdminToolsPlugin.Instance.GetPlayerName(bedID, "Unknown Player");
                    UnturnedChat.Say(caller, "CheckOwner_Pass_Found_Bed".Translate(name, ID, bedName, bedID));
                }
                else
                {
                    UnturnedChat.Say(caller, "CheckOwner_Pass_Found".Translate(name, ID));
                }
                return;
            }
            UnturnedChat.Say(caller, "CheckOwner_Fail_NotFound".Translate());
        }