Esempio n. 1
0
    void SpawnElectron(int index)
    {
        GameObject elecObj = GameObject.Instantiate(electronTemp);

        elecObj.transform.parent        = electronContainer.transform;
        elecObj.transform.localPosition = Vector3.zero;
        Electron electron = elecObj.GetComponent <Electron> ();

        ElectronData data = CalculateElectronData(index);

        electron.SetElectronLocation(data.position);
        electron.SetRotation(sphere.transform.position, data.normal, speed);
        elecObj.SetActive(true);
    }
Esempio n. 2
0
    ElectronData CalculateElectronData(int index)
    {
        ElectronData data = new ElectronData();

        float      angle = 180f / electronCount * index;
        Quaternion q     = Quaternion.AngleAxis(angle, firstNormalAxis);

        data.normal = q * firstNormal;
        Vector3 pos = firstPosition;

        q = Quaternion.AngleAxis(Random.Range(0, 360f), data.normal);

        float distance = Vector3.Distance(pos, sphere.transform.position);
        float scale    = sphere.transform.localScale.x / distance;

        pos           = sphere.transform.position + (q * pos) * scale;
        data.position = pos;

        return(data);
    }