コード例 #1
0
    public GameObject getDisk(int round)
    {
        if (sceneController.GetScore() >= 20 + round * (round - 1) * 10)
        {
            sceneController.round++;
        }
        else if (sceneController.loss >= 20)
        {
            sceneController.game = 2;
        }
        GameObject newDisk;

        if (free.Count == 0)
        {
            newDisk = GameObject.Instantiate(diskPrefab) as GameObject;
        }
        else
        {
            newDisk = free[0];
            free.Remove(free[0]);
        }
        diskData       = newDisk.GetComponent <DiskData>();
        diskData.color = diskColor[Random.Range(0, 3)];
        newDisk.GetComponent <Renderer>().material.color = diskData.color;
        used.Add(newDisk);
        return(newDisk);
    }
コード例 #2
0
    // Update is called once per frame

    void FixedUpdate()

    {
        if (diskComp == 10)
        {
            NextRound();
        }

        if (Input.GetMouseButtonDown(0))
        {
            Camera ca = cam.GetComponent <Camera>();

            Ray ray = ca.ScreenPointToRay(Input.mousePosition);

            RaycastHit rayHit;

            if (Physics.Raycast(ray, out rayHit))
            {
                if (rayHit.collider.gameObject.tag.Contains("Disk") && isPaused == false)
                {
                    this.recordScore();
                    rayHit.collider.gameObject.GetComponent <Rigidbody>().isKinematic = true;
                    DiskData disk = rayHit.collider.gameObject.GetComponent <DiskData>();


                    factory.Free(disk.UsedIndex);

                    disk.currentSSAction.enable  = false;
                    disk.currentSSAction.destroy = true;
                }
            }
        }
    }
コード例 #3
0
    public GameObject getDisk(int round)
    {
        //if (sceneController.GetScore() >= 20 + round*(round - 1)*10)
        //{
        //    sceneController.round++;
        //}
        //else if (sceneController.loss >= 10)
        //{
        //    Debug.Log(sceneController.loss);
        //    sceneController.game = 2;
        //}
        GameObject newDisk;

        //如果工厂中有空余的飞盘,则使用空余的,否则,新增飞盘
        if (free.Count == 0)
        {
            //     Debug.Log("here");
            newDisk = GameObject.Instantiate(diskPrefab) as GameObject;
        }
        else
        {
            newDisk = free[0];
            free.Remove(free[0]);
            //      Debug.Log("here");
        }
        //设置飞盘属性
        diskData       = newDisk.GetComponent <DiskData>();
        diskData.color = diskColor[Random.Range(0, 3)];
        newDisk.GetComponent <Renderer>().material.color = diskData.color;
        used.Add(newDisk);
        return(newDisk);
    }
コード例 #4
0
    public GameObject getDisk(int round)
    {
        GameObject disk = null;

        if (free.Count > 0)
        {
            disk = free[0].gameObject;
            free.Remove(free[0]);
        }
        else
        {
            disk = GameObject.Instantiate <GameObject>(diskPrefab, Vector3.zero, Quaternion.identity);
            disk.AddComponent <DiskData>();
        }

        int start;

        switch (round)
        {
        case 0: start = 0; break;

        case 1: start = 100; break;

        default: start = 200; break;
        }
        int selectColor = Random.Range(start, round * 499);

        round = selectColor / 250;
        DiskData diskData      = disk.GetComponent <DiskData>();
        Renderer renderer      = disk.GetComponent <Renderer>();
        Renderer childRenderer = disk.transform.GetChild(0).GetComponent <Renderer>();
        float    ranX          = Random.Range(-1, 1) < 0 ? -1.2f : 1.2f;
        Vector3  direction     = new Vector3(ranX, 1, 0);

        switch (round)
        {
        case 0:
            diskData.setDiskData(new Vector3(1.35f, 1.35f, 1.35f), Color.white, 4.0f, direction);
            renderer.material.color      = Color.white;
            childRenderer.material.color = Color.white;
            break;

        case 1:
            diskData.setDiskData(new Vector3(1f, 1f, 1f), Color.gray, 6.0f, direction);
            renderer.material.color      = Color.gray;
            childRenderer.material.color = Color.gray;
            break;

        case 2:
            diskData.setDiskData(new Vector3(0.7f, 0.7f, 0.7f), Color.black, 8.0f, direction);
            renderer.material.color      = Color.black;
            childRenderer.material.color = Color.black;
            break;
        }
        used.Add(diskData);
        diskData.name             = diskData.GetInstanceID().ToString();
        disk.transform.localScale = diskData.getSize();

        return(disk);
    }
コード例 #5
0
 public void remove(DiskData disk)
 {
     disk.removeForce();
     disk.gameObject.transform.position = new Vector3(0, 0, -20f); //重新放置到摄像机后
     diskFactory.freeDisk(disk);                                   //回收
     diskList.Remove(disk);
 }
コード例 #6
0
        public static List <DiskData> GetAPMRotaryDrives()
        {
            List <DiskData> disksNames = WMIMethods.GetPhysicalDiskNames();

            List <DiskData> result = new List <DiskData>();

            foreach (DiskData dd in disksNames)
            {
                IDENTIFY_DEVICE_DATA?idd = IdentifyDefice(dd.DeviceName);

                if (idd == null)
                {
                    continue;
                }

                bool?b = IsRotativeDevice(idd.Value);

                if (b.HasValue && b.Value == true && APMSupported(idd.Value))
                {
                    DiskData ndd = new DiskData(
                        DeviceName: dd.DeviceName,
                        Model: ATACharsToString(idd.Value.model).Trim(),
                        SerialNo: ATACharsToString(idd.Value.serial_no).Trim(),
                        APMenabled: APMEnabled(idd.Value),
                        APMvalue: idd.Value.CurrentAPMvalue,
                        Status: dd.Status,
                        Size: dd.Size
                        );

                    result.Add(ndd);
                }
            }

            return(result);
        }
コード例 #7
0
    private void Update()
    {
        foreach (var obj in beUsed.Values)
        {
            if (!obj.gameObject.activeSelf)
            {
                wait.Add(obj.GetInstanceID());
            }
        }

        //将beUsed里的飞碟free
        foreach (int obj in wait)
        {
            GameObject freeDisk = beUsed[obj].gameObject;
            DiskData   d        = null;
            foreach (DiskData i in beUsed.Values)
            {
                if (freeDisk.GetInstanceID() == i.gameObject.GetInstanceID())
                {
                    d = i;
                }
            }
            if (d != null)
            {
                d.gameObject.SetActive(false);
                free.Add(d);
                beUsed.Remove(d.GetInstanceID());
            }
        }
        wait.Clear();
    }
コード例 #8
0
        public async Task CreateDisk()
        {
            #region Snippet:Managing_Disks_CreateADisk
            ArmClient    armClient    = new ArmClient(new DefaultAzureCredential());
            Subscription subscription = await armClient.GetDefaultSubscriptionAsync();

            // first we need to get the resource group
            string        rgName        = "myRgName";
            ResourceGroup resourceGroup = await subscription.GetResourceGroups().GetAsync(rgName);

            // Now we get the disk collection from the resource group
            DiskCollection diskCollection = resourceGroup.GetDisks();
            // Use the same location as the resource group
            string diskName = "myDisk";
            var    input    = new DiskData(resourceGroup.Data.Location)
            {
                Sku = new DiskSku()
                {
                    Name = DiskStorageAccountTypes.StandardLRS
                },
                CreationData = new CreationData(DiskCreateOption.Empty),
                DiskSizeGB   = 1,
            };
            ArmOperation <Disk> lro = await diskCollection.CreateOrUpdateAsync(true, diskName, input);

            Disk disk = lro.Value;
            #endregion Snippet:Managing_Disks_CreateADisk
        }
コード例 #9
0
ファイル: DiskFactory.cs プロジェクト: Buyiai/3D-Game
    public void GetDisk(int ruler)
    {
        GameObject disk;

        if (free.Count == 0)
        {
            disk      = GameObject.Instantiate(Resources.Load <GameObject>("prefabs/disk"));
            disk.name = "disk" + count;
            count++;
            used.Add(disk);
        }
        else
        {
            disk = free[0];
            disk.SetActive(true);
            used.Add(disk);
            free.RemoveAt(0);
        }
        flag = UnityEngine.Random.Range(0, 5);
        disk.GetComponent <Renderer>().material.color = c[(ruler + flag) % 9];
        disk.transform.localScale = getSize(ruler);
        disk.transform.position   = getPosition(ruler + flag);
        DiskData data = disk.GetComponent(typeof(DiskData)) as DiskData;

        data.speed  = ruler + 1;
        data.target = getTarget(ruler + flag);
    }
コード例 #10
0
        Disk IOperationSource <Disk> .CreateResult(Response response, CancellationToken cancellationToken)
        {
            using var document = JsonDocument.Parse(response.ContentStream);
            var data = DiskData.DeserializeDiskData(document.RootElement);

            return(new Disk(_armClient, data));
        }
コード例 #11
0
        public bool WarnIfDiskStatusChange(DiskData diskNew, IEnumerable <DiskData> disks)
        {
            HashSet <DiskData> diskSet = disks as HashSet <DiskData>;

            if (diskSet == null)
            {
                diskSet = new HashSet <DiskData>(disks);
            }

            if (diskSet.Contains(diskNew))
            {
                foreach (var disk in diskSet)
                {
                    if (disk.Equals(diskNew) && diskNew.Status != disk.Status)
                    {
#if !SERVICE
                        string title   = "Attention";
                        string tipText =
                            $@"DiskAPMManager:
Disk status change detected
from {disk.Status}
to   {diskNew.Status}
on   {diskNew.Model}
s/n: {diskNew.SerialNo}";


                        MessageBox.Show(tipText, title);
#endif
                        return(true);
                    }
                }
            }

            return(false);
        }
コード例 #12
0
        internal static DiskList DeserializeDiskList(JsonElement element)
        {
            IReadOnlyList <DiskData> value    = default;
            Optional <string>        nextLink = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("value"))
                {
                    List <DiskData> array = new List <DiskData>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(DiskData.DeserializeDiskData(item));
                    }
                    value = array;
                    continue;
                }
                if (property.NameEquals("nextLink"))
                {
                    nextLink = property.Value.GetString();
                    continue;
                }
            }
            return(new DiskList(value, nextLink.Value));
        }
コード例 #13
0
 public void freeDisk(DiskData disk)//回收飞碟
 {
     _instance.free.Add(disk);
     if (!_instance.used.Remove(disk))//抛出错误
     {
         throw new System.Exception();
     }
 }
コード例 #14
0
ファイル: DiskFactory.cs プロジェクト: LynnZiQi/Unity3d-HW
 public void FreeDisk() //freeall
 {
     for (int i = 0; i < inUsed.Count; i++)
     {
         DiskData temp = inUsed[i];
         FreeDisk(temp);
     }
 }
コード例 #15
0
ファイル: DiskFactory.cs プロジェクト: PeanutADi/Homework4
 public void DiskWait(DiskData disk)
 {
     wait.Add(disk);
     if (!used.Remove(disk))
     {
         throw new System.Exception();
     }
 }
コード例 #16
0
    void moveDisk(DiskData disk)
    {
        float px, py, pz;

        px = disk.gameObject.transform.position.x + disk.speed * disk.direction.x * Time.deltaTime;
        pz = disk.gameObject.transform.position.z + disk.speed * disk.direction.z * Time.deltaTime;
        py = disk.gameObject.transform.position.y + disk.speed * (disk.direction.y + g * Time.deltaTime) * Time.deltaTime;
        disk.gameObject.transform.position = new Vector3(px, py, pz);
    }
コード例 #17
0
    public void move(DiskData disk)
    {
        disk.y -= gravity * Time.deltaTime;//模拟重力
        float x = disk.gameObject.transform.position.x + disk.x * Time.deltaTime;
        float y = disk.gameObject.transform.position.y + disk.y * Time.deltaTime;
        float z = disk.gameObject.transform.position.z + disk.z * Time.deltaTime;

        disk.gameObject.transform.position = new Vector3(x, y, z);//下一帧的位置
    }
コード例 #18
0
 public void getDisk(Ruler ruler)
 {
     if (isPrepared())
     {
         prepared       = pres.Dequeue();
         prepared.ruler = ruler;
         prepared.gameObject.SetActive(true);
     }
 }
コード例 #19
0
ファイル: DiskFactory.cs プロジェクト: Breeze16/disk_further
	/**
	 * 给定id(在usedDisk中的位置)
	 * freeDisk掉目标DiskData (从usedDisk中取出加入freeDisk)
	 */
	public void freeDisk(int id) {
		DiskData aDisk = usedDisk[id];
		if (aDisk == null) {
			throw new System.Exception ();
		} else {
			freeDisk.Add (aDisk);
			usedDisk.Remove (aDisk);
		}
	}
コード例 #20
0
    //3 ways of freedisk
    public void FreeDisk(int index)
    {
        DiskData theDisk = used.ToArray()[index];

        if (theDisk != null)
        {
            used.Remove(theDisk);
            free.Add(theDisk);
        }
    }
コード例 #21
0
		public double GetDiskData(DiskData dd)
		{
			return	dd==DiskData.Read? 
						GetCounterValue(_diskReadCounter, "PhysicalDisk", "Disk Read Bytes/sec", "_Total"):
					dd==DiskData.Write? 
						GetCounterValue(_diskWriteCounter, "PhysicalDisk", "Disk Write Bytes/sec", "_Total"):
					dd==DiskData.ReadAndWrite? 
						GetCounterValue(_diskReadCounter, "PhysicalDisk", "Disk Read Bytes/sec", "_Total")+
						GetCounterValue(_diskWriteCounter, "PhysicalDisk", "Disk Write Bytes/sec", "_Total"):
					0;
		}
コード例 #22
0
 public double GetDiskData(DiskData dd)
 {
     return(dd == DiskData.Read ?
            GetCounterValue(_diskReadCounter, "PhysicalDisk", "Disk Read Bytes/sec", "_Total") :
            dd == DiskData.Write ?
            GetCounterValue(_diskWriteCounter, "PhysicalDisk", "Disk Write Bytes/sec", "_Total") :
            dd == DiskData.ReadAndWrite ?
            GetCounterValue(_diskReadCounter, "PhysicalDisk", "Disk Read Bytes/sec", "_Total") +
            GetCounterValue(_diskWriteCounter, "PhysicalDisk", "Disk Write Bytes/sec", "_Total") :
            0);
 }
コード例 #23
0
    public void FreeAllDisks() // free the used disks
    {
        int i = 0;

        for (i = used.Count - 1; i >= 0; i--)
        {
            DiskData disk = used[i];
            used.Remove(disk);
            free.Add(disk);
        }
    }
コード例 #24
0
ファイル: IActionManager.cs プロジェクト: DukeCheung/3D-Game
 public void remove(DiskData disk)
 {
     if (mode == 0)
     {
         cc.remove(disk);
     }
     else
     {
         ph.remove(disk);
     }
 }
コード例 #25
0
        private async void CreateFile(DiskData data)
        {
            string path = Path.Combine(_path, data.Key + "." + _backingending);

            using (FileStream sw = new FileStream(path, FileMode.Create))
            {
                _xs.Serialize(sw, data);
                await sw.FlushAsync();

                sw.Close();
            }
        }
コード例 #26
0
    public void hitDisk(GameObject disk)
    {
        DiskData temp = diskFactory.getHitDisk(disk);

        if (temp != null)
        {
            GameObject obj = Object.Instantiate(Resources.Load("ParticleSystem", typeof(GameObject)), disk.transform.position, Quaternion.identity) as GameObject;
            scoreCtrl.addScore(temp.ruler.score);
            diskFactory.freeDisk(temp);
            Destroy(obj, 0.5f);
        }
    }
コード例 #27
0
ファイル: DiskFactory.cs プロジェクト: Breeze16/disk_further
	public void freeDiskAllDisks ()
	{
		for (int i = usedDisk.Count - 1; i >= 0; i--) {
			DiskData disk = usedDisk [i];
			freeDisk.Add (disk);
			usedDisk.Remove (disk);
		}

		for (int i = 0; i < freeDisk.Count; i++) {
			freeDisk [i].transform.position = new Vector3 (3f * i, 3f * i, -20);
			freeDisk [i].gameObject.GetComponent<Rigidbody> ().velocity = Vector3.zero;
		}
	}
コード例 #28
0
    public void set(DiskData newData)
    {
        this.size      = newData.size;
        this.color     = newData.color;
        this.speed     = newData.speed;
        this.shotScore = newData.shotScore;

        this.gameObject.transform.localScale = new Vector3(size, size, size);

        Renderer renders = this.transform.GetComponent <Renderer> ();

        renders.material.shader = Shader.Find("Transparent/Diffuse");
        renders.material.color  = this.color;
    }
コード例 #29
0
ファイル: CCFlyAction.cs プロジェクト: jongrun/homework5
 public override void Start()
 {
     disk            = gameobject.GetComponent <DiskData>();
     enable          = true;
     acceleration    = 9.8f;
     verticalSpeed   = 0;
     horizontalSpeed = disk.speed;
     direction       = disk.direction;
     rigidbody       = this.gameobject.GetComponent <Rigidbody>();
     if (rigidbody)
     {
         rigidbody.velocity = horizontalSpeed * direction;
     }
 }
コード例 #30
0
ファイル: DiskFactory.cs プロジェクト: LynnZiQi/Unity3d-HW
    public void FreeDisk(int totalDisk)
    {
        DiskData tempDisk = inUsed.ToArray()[totalDisk];

        if (tempDisk == null)
        {
            Debug.Log("系统异常");
        }
        else
        {
            inFree.Add(tempDisk);
            inUsed.Remove(tempDisk);
        }
    }
コード例 #31
0
    public override void Start()
    {
        disk       = gameobject.GetComponent <DiskData>();
        enable     = true;
        gravity    = 9.8f;
        movingTime = 0;
        xSpeed     = disk.speed;
        initDir    = disk.direction;

        rigidbody = this.gameobject.GetComponent <Rigidbody>();
        if (rigidbody)
        {
            rigidbody.velocity = xSpeed * initDir;
        }
    }