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); } }
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); } }
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); } } }