示例#1
0
文件: dx8.cs 项目: betajaen/dx8
        void FindDisks()
        {
            List <string> paths = new List <string>();

      #if UNITY_EDITOR
            FindDisksInPath(paths, "C:\\dev\\dx8\\ROMS");
      #endif

            FindDisksInPath(paths, Application.dataPath + @"/../");

            int order = 0;
            foreach (var path in paths)
            {
                GameObject       floppy3dGo = UnityEngine.Object.Instantiate(Prefab_FloppyDisk3d);
                FloppyDisk3dItem floppy3d   = floppy3dGo.GetComponent <FloppyDisk3dItem>();
                floppy3d.Title = System.IO.Path.GetFileNameWithoutExtension(System.IO.Path.GetFileNameWithoutExtension(path));
                if (floppy3d.Title.EndsWith("_fd"))
                {
                    floppy3d.Title = floppy3d.Title.Substring(0, floppy3d.Title.Length - 3);
                }
                floppy3d.Path     = path;
                floppy3d.UI_Order = order++;


                floppy3d.transform.SetParent(FloppyDiskStack, false);
                floppy3d.transform.localPosition = new Vector3(0, floppy3d.UI_Order * 0.3f, 0);
                Floppys.Add(floppy3d);
            }
        }
示例#2
0
    void OnTriggerEnter(Collider other)
    {
        Debug.LogFormat("IsEmpty = {0}, Tag = {1}", IsEmpty, other.gameObject.tag);


        if (DX8.Is2dState == false && EjectCooldown <= 0.0f && IsEmpty && other.gameObject.tag == "Floppy")
        {
            Debug.Log("Hello!");
            IsEmpty = false;
            Floppy  = other.GetComponent <FloppyDisk3dItem>();
            Floppy.RunFloppy(this);
        }
    }
示例#3
0
文件: Character.cs 项目: betajaen/dx8
    void Update()
    {
        if (Dx8.IsPaused)
        {
            return;
        }

        if (FreezeState == FreezeState.Frozen)
        {
            return;
        }

        if (FreezeState == FreezeState.None)
        {
            RaycastHit hit;

            if (HeldItem.IsHolding())
            {
                if (Input.GetMouseButtonUp(0))
                {
                    HeldItem.Deattach();
                }
                else
                {
                    Vector3 moveTarget = Vector3.zero;

                    Ray ray = Camera.ScreenPointToRay(new Vector3(Screen.width / 2, Screen.height / 2, 0));

                    if (Physics.Raycast(ray, out hit, 100.0f, 1 << 8))
                    {
                        //moveTarget = hit.point;
                        HeldItem.TargetPoint = hit.point;
                        // Almost right - need to take into held objects radius into account.
                    }
                    else
                    {
                        HeldItem.TargetPoint = ray.origin + ray.direction * 5.0f;
                    }
                }
            }
            else
            {
                bool press = (Input.GetMouseButtonUp(0));

                // Boolean Raycast(Vector3 origin, Vector3 direction, Single maxDistance, Int32 layerMask);
                // Physics.Raycast(
                Ray ray = Camera.ScreenPointToRay(new Vector3(Screen.width / 2, Screen.height / 2, 0));
                //public static Boolean Raycast(Ray ray, out RaycastHit hitInfo, Single maxDistance, Int32 layerMask);
                if (Physics.Raycast(ray, out hit, 100.0f, 1 << 8))
                {
                    if (LastLookedAt != hit.collider.gameObject)
                    {
                        LastLookedAt = hit.collider.gameObject;

                        string text = string.Empty;

                        if (LastLookedAt.tag == "Floppy")
                        {
                            FloppyDisk3dItem floppy = LastLookedAt.GetComponent <FloppyDisk3dItem>();
                            text = floppy.Title;
                        }

                        // LookAtInfo.text = text;
                        Dx8.UserInterface.SetCaption(text);
                    }

                    if (press && hit.collider.name == "PowerButton")
                    {
                        Dx8.PowerButtonPressed();
                    }
                    else if (press && hit.collider.name == "FloppyButton")
                    {
                        Dx8.FloppySensor.Eject();
                        // UI_RemoveFloppy();
                    }
                    else if (press)
                    {
                        Rigidbody rb = hit.collider.GetComponent <Rigidbody>();

                        if (rb)
                        {
                            bool isFloppy = (rb.tag == "Floppy");

                            if (isFloppy || (!isFloppy && CanPickUpHeavy))
                            {
                                HeldItem.Attach(rb, hit.collider);
                            }
                        }
                    }
                }
                else
                {
                    if (LastLookedAt != null)
                    {
                        //LookAtInfo.text = string.Empty;
                        Dx8.UserInterface.SetCaption(string.Empty);
                        LastLookedAt = null;
                    }
                }
            }
        }

        Quaternion yawq = Quaternion.identity;

        if (FreezeState == FreezeState.None || FreezeState == FreezeState.LookOnly)
        {
            Yaw   += Input.GetAxis("Mouse X") * 2.5f;
            Pitch -= Input.GetAxis("Mouse Y") * 2.5f;

            Pitch = Mathf.Clamp(Pitch, -89.0f, 89.0f);

            yawq = Quaternion.Euler(0, Yaw, 0);


            transform.localRotation        = yawq;
            Camera.transform.localRotation = Quaternion.Euler(Pitch, 0, 0);
        }

        if (FreezeState == FreezeState.None)
        {
            Vector3 velocity = Vector3.zero;
            bool    didMove  = false;

            if (Input.GetKey(KeyCode.W))
            {
                velocity.z += 1.0f;
                didMove     = true;
            }
            else if (Input.GetKey(KeyCode.S))
            {
                velocity.z -= 1.0f;
                didMove     = true;
            }

            if (Input.GetKey(KeyCode.A))
            {
                velocity.x -= 1.0f;
                didMove     = true;
            }
            else if (Input.GetKey(KeyCode.D))
            {
                velocity.x += 1.0f;
                didMove     = true;
            }

            if (didMove == true)
            {
                const float kSpeed = 8.0f;

                Vector3 delta = velocity * kSpeed * Time.deltaTime;
                delta = yawq * delta;

                CC.Move(delta);
            }
        }
    }