Ejemplo n.º 1
0
        public void Update()
        {
            if (isWarping)
            {
                WarpState += 0.0055655558f;
                if (WarpState > 1f)
                {
                    WarpState = 1f;
                }
            }
            else
            {
                WarpState -= 0.06667667f;
                if (WarpState < 0f)
                {
                    WarpState = 0f;
                }
            }

            Vector4 playerRot = new Vector4(rootTransform.rotation.x, rootTransform.rotation.y, rootTransform.rotation.z, rootTransform.rotation.w);

            if (WarpState > 0.001f && !warpEffectActivated)
            {
                for (int i = 0; i < warpRotations.Length; i++)
                {
                    warpRotations[i] = playerRot;
                }
                VFAudio.Create("warp-begin", base.transform, Vector3.zero, true, 0);
                ToggleEffect(true);
            }
            else if (WarpState == 0 && warpEffectActivated)
            {
                VFAudio.Create("warp-end", base.transform, Vector3.zero, true, 0);
                ToggleEffect(false);
            }

            Array.Copy(warpRotations, 0, warpRotations, 1, warpRotations.Length - 1);
            warpRotations[0] = playerRot;

            ParticleSystem.EmissionModule             emission         = astrosParticles.emission;
            ParticleSystem.VelocityOverLifetimeModule velocityOverTime = astrosParticles.velocityOverLifetime;
            ParticleSystem.ShapeModule shape = astrosParticles.shape;

            Vector3 lhs = velocity.normalized;

            // to compute the emission we would need to know the players local star, so default to this for now
            emission.rateOverTime = 120f;
            velocityOverTime.speedModifierMultiplier = 20000f;
            velocityOverTime.x = (float)lhs.x;
            velocityOverTime.y = (float)lhs.y;
            velocityOverTime.z = (float)lhs.z;
            shape.position     = lhs * 10000.0f;
            shape.rotation     = rootTransform.rotation.eulerAngles;

            distortRenderer.GetComponent <Transform>().localRotation = rootTransform.rotation;
            nebulasRenderer.GetComponent <Transform>().localRotation = rootTransform.rotation;
            float num1 = intensByState.Evaluate(WarpState);
            float num2 = intensByState_astro.Evaluate(WarpState);

            tunnelMat.SetFloat("_Multiplier", tunnelMul * num1);
            tunnelMat.SetVectorArray("_WarpRotations", warpRotations);
            distortMat.SetFloat("_DistortionStrength", distortMul * num1);
            astrosMat.SetFloat("_Multiplier", astrosMul * num2);
            nebulasMat.SetFloat("_Multiplier", nebulasMul * num2);
        }
Ejemplo n.º 2
0
 public void HideClickTut()
 {
     data.tween.AddTween(1, tweenOutClick, onClickOutEnd);
     clickBackground.GetComponent <Collider>().enabled = false;
 }
Ejemplo n.º 3
0
        void Start()
        {
            var mesh   = _source.GetComponent <MeshFilter>().sharedMesh;
            var vcount = mesh.vertexCount;

            _rootPoints = new NativeArray <RootPoint>
                              (vcount, Allocator.Persistent);

            _positionBuffer = new NativeArray <float4>
                                  (vcount * _segmentCount, Allocator.Persistent);

            _velocityBuffer = new NativeArray <float3>
                                  (vcount * _segmentCount, Allocator.Persistent);

            var vertices = mesh.vertices;
            var normals  = mesh.normals;

            for (var vi = 0; vi < vcount; vi++)
            {
                _rootPoints[vi] = new RootPoint
                {
                    position = vertices[vi], normal = normals[vi]
                }
            }
            ;

            _positionMap = new Texture2D
                               (_segmentCount, vcount, TextureFormat.RGBAFloat, false);

            _target.SetTexture("PositionMap", _positionMap);
            _target.SetUInt("VertexCount", (uint)vcount);
            _target.SetUInt("SegmentCount", (uint)_segmentCount);

            _time = Time.time;
        }

        void OnDestroy()
        {
            if (_rootPoints.IsCreated)
            {
                _rootPoints.Dispose();
            }
            if (_positionBuffer.IsCreated)
            {
                _positionBuffer.Dispose();
            }
            if (_velocityBuffer.IsCreated)
            {
                _velocityBuffer.Dispose();
            }
            if (_positionMap != null)
            {
                Destroy(_positionMap);
            }
        }

        void Update()
        {
            var nextTime = Time.time;

            while (_time + _maxTimeStep < nextTime)
            {
                var job = new UpdateJob
                {
                    // Buffers
                    R = _rootPoints,
                    P = _positionBuffer,
                    V = _velocityBuffer,

                    // Settings
                    prof = _profile,
                    seed = _randomSeed,

                    // Current state
                    tf = (float4x4)_source.transform.localToWorldMatrix,
                    t  = _time,
                    dt = _maxTimeStep
                };

                job.ScheduleParallel
                    (_rootPoints.Length, 1, default(JobHandle)).Complete();

                _time += _maxTimeStep;
            }

            _positionMap.LoadRawTextureData(_positionBuffer);
            _positionMap.Apply();
        }

        #endregion
    }
Ejemplo n.º 4
0
    public Vector3 GetCenter()
    {
        var collider = bodyMesh.GetComponent <BoxCollider>();

        return(bodyMesh.transform.TransformPoint(collider.center));
    }
Ejemplo n.º 5
0
 void Awake()
 {
     maxDisco = 100;
     material = mesh.GetComponent <MeshRenderer>().materials[0];
 }
        // Use this for initialization
        void Start()
        {
            fpsMonitor = GetComponent <FpsMonitor>();

            imageSizeDropdown.value = (int)imageSize;
            countDropdown.value     = 2;

            fgTex    = Resources.Load("lena") as Texture2D;
            bgTex    = new Texture2D(fgTex.width, fgTex.height, TextureFormat.RGBA32, false);
            alphaTex = new Texture2D(fgTex.width, fgTex.height, TextureFormat.RGBA32, false);
            dstTex   = new Texture2D(fgTex.width, fgTex.height, TextureFormat.RGBA32, false);

            fgMat    = new Mat(fgTex.height, fgTex.width, CvType.CV_8UC3);
            bgMat    = new Mat(fgTex.height, fgTex.width, CvType.CV_8UC3);
            alphaMat = new Mat(fgTex.height, fgTex.width, CvType.CV_8UC1);
            dstMat   = new Mat(fgTex.height, fgTex.width, CvType.CV_8UC3, new Scalar(0, 0, 0));


            // Generate fgMat.
            Utils.texture2DToMat(fgTex, fgMat);

            // Generate bgMat.
            Core.flip(fgMat, bgMat, 1);
            Core.bitwise_not(bgMat, bgMat);

            // Generate alphaMat.
            for (int r = 0; r < alphaMat.rows(); r++)
            {
                alphaMat.row(r).setTo(new Scalar(r / (alphaMat.rows() / 256)));
            }
#pragma warning disable 0618
            Imgproc.linearPolar(alphaMat, alphaMat, new Point(alphaMat.cols() / 2, alphaMat.rows() / 2), alphaMat.rows(), Imgproc.INTER_CUBIC | Imgproc.WARP_FILL_OUTLIERS | Imgproc.WARP_INVERSE_MAP);
#pragma warning restore 0618


            // Generate large size Mat.
            fgMatLarge    = new Mat();
            bgMatLarge    = new Mat();
            alphaMatLarge = new Mat();
            dstMatLarge   = new Mat();
            Imgproc.resize(fgMat, fgMatLarge, new Size(), 2, 2, 0);
            Imgproc.resize(bgMat, bgMatLarge, new Size(), 2, 2, 0);
            Imgproc.resize(alphaMat, alphaMatLarge, new Size(), 2, 2, 0);
            Imgproc.resize(dstMat, dstMatLarge, new Size(), 2, 2, 0);

            // Generate small size Mat (ROI).
            OpenCVForUnity.CoreModule.Rect rect = new OpenCVForUnity.CoreModule.Rect(127, 127, 256, 256);
            fgMatROI    = new Mat(fgMat, rect);
            bgMatROI    = new Mat(bgMat, rect);
            alphaMatROI = new Mat(alphaMat, rect);
            dstMatROI   = new Mat(dstMat, rect);


            Utils.matToTexture2D(fgMat, fgTex, true, 0, true);
            Utils.matToTexture2D(bgMat, bgTex, true, 0, true);
            Utils.matToTexture2D(alphaMat, alphaTex, true, 0, true);
            Utils.matToTexture2D(dstMat, dstTex, true, 0, true);
            fgQuad.GetComponent <Renderer>().material.mainTexture    = fgTex;
            bgQuad.GetComponent <Renderer>().material.mainTexture    = bgTex;
            alphaQuad.GetComponent <Renderer>().material.mainTexture = alphaTex;
            dstQuad.GetComponent <Renderer>().material.mainTexture   = dstTex;
        }
            public void Push(MeshRenderer renderer)
            {
                var meshFilter = renderer.GetComponent <MeshFilter>();

                if (meshFilter == null)
                {
                    Debug.LogWarningFormat("{0} has no mesh filter", renderer.name);
                    return;
                }
                var mesh = meshFilter.sharedMesh;

                if (mesh == null)
                {
                    Debug.LogWarningFormat("{0} has no mesh", renderer.name);
                    return;
                }

                var indexOffset     = Positions.Count;
                var boneIndexOffset = Bones.Count;

                Positions.AddRange(mesh.vertices
                                   .Select(x => renderer.transform.TransformPoint(x))
                                   );
                Normals.AddRange(mesh.normals
                                 .Select(x => renderer.transform.TransformVector(x))
                                 );
                UV.AddRange(mesh.uv);
                Tangents.AddRange(mesh.tangents
                                  .Select(t =>
                {
                    var v = renderer.transform.TransformVector(t.x, t.y, t.z);
                    return(new Vector4(v.x, v.y, v.z, t.w));
                })
                                  );

                var self = renderer.transform;
                var bone = self.parent;

                if (bone == null)
                {
                    Debug.LogWarningFormat("{0} is root gameobject.", self.name);
                    return;
                }
                var bindpose = bone.worldToLocalMatrix;

                BoneWeights.AddRange(Enumerable.Range(0, mesh.vertices.Length)
                                     .Select(x => new BoneWeight()
                {
                    boneIndex0 = Bones.Count,
                    weight0    = 1,
                })
                                     );

                BindPoses.Add(bindpose);
                Bones.Add(bone);

                for (int i = 0; i < mesh.subMeshCount; ++i)
                {
                    var indices = mesh.GetIndices(i).Select(x => x + indexOffset);
                    var mat     = renderer.sharedMaterials[i];
                    var sameMaterialSubMeshIndex = SubMeshes.FindIndex(x => ReferenceEquals(x.Material, mat));
                    if (sameMaterialSubMeshIndex >= 0)
                    {
                        SubMeshes[sameMaterialSubMeshIndex].Indices.AddRange(indices);
                    }
                    else
                    {
                        SubMeshes.Add(new SubMesh
                        {
                            Indices  = indices.ToList(),
                            Material = mat,
                        });
                    }
                }
            }
Ejemplo n.º 8
0
    void Start()
    {
        Renderer r = m_material.GetComponent <Renderer> ();

        m_startingColor = r.material.color;
    }
Ejemplo n.º 9
0
//	public void changeTexture(GameObject child) {
//		child.GetComponent<MeshRenderer>().material = destroyedMat;
//	}
    public void changeTexture(MeshRenderer child)
    {
        child.GetComponent <MeshRenderer>().material = destroyedMat;
    }
Ejemplo n.º 10
0
    void _players_view()
    {
        // _frp( FRP_LOW + "_players_view()" + FRP_END );

        if (is_in_game)
        {
            _frp(FRP_ERR + "Menu was alive while game running for some reason... Disappearing" + FRP_END);
            this.gameObject.SetActive(false);
            return;
        }

        // Take most updated data
        _api_users_refresh();

        // Constantly internalize local state into ht8b.cs to make sure we can allow us to play
        // when system control is handed over to it
        main.local_playerid = local_playerid;

        ui_textplayers[0].text = "";
        ui_textplayers[1].text = "";

        uint readied_players = 0;

        // Texts for who is playing
        for (uint i = 0; i < (teams_allowed == 1? 4: 2); i++)
        {
            if (player_ready[i])
            {
#if UNITY_EDITOR
                if ((i & 0x1U) == 1)
                {
                    ui_textplayers[1].text += "<UNITY_EDITOR>\n";

                    readied_players |= 0x2u;
                }
                else
                {
                    ui_textplayers[0].text = "\n<UNITY_EDITOR>" + ui_textplayers[0].text;

                    readied_players |= 0x1u;
                }
#else
                string dispname = player_apis[i].displayName;

                if (i == local_playerid)
                {
                    // Check for value stomping
                    if (player_apis[i] != Networking.LocalPlayer)
                    {
                        _frp(FRP_ERR + "Local player value was stomped by a rogue network event" + FRP_END);
                        local_playerid = -1;
                        return;
                    }

                    // Show local player in italics
                    dispname = "<i>" + dispname + "</i>";
                }

                if ((i & 0x1U) == 1)
                {
                    ui_textplayers[1].text += dispname + "\n";

                    readied_players |= 0x2;
                }
                else
                {
                    ui_textplayers[0].text = "\n" + dispname + ui_textplayers[0].text;

                    readied_players |= 0x1;
                }
#endif
            }

            // Update join buttons
            if (local_playerid >= 0)
            {
                if (i == (uint)local_playerid)
                {
                    ui_joinbuttons[i].gameObject.SetActive(true);
                    ui_joinbuttons[i].sharedMaterial = mat_low;
                }
                else
                {
                    ui_joinbuttons[i].gameObject.SetActive(false);
                }
            }
            else
            {
                if (player_ready[i])
                {
                    ui_joinbuttons[i].gameObject.SetActive(false);
                }
                else
                {
                    ui_joinbuttons[i].gameObject.SetActive(true);
                    ui_joinbuttons[i].sharedMaterial = mat_high;
                }
            }
        }

        if ((readied_players == 0x3u || gamemode_id == 2u) && local_playerid == 0)
        {
            ui_start.sharedMaterial = mat_high;
            ui_start.GetComponent <BoxCollider>().enabled = true;
        }
        else
        {
            ui_start.sharedMaterial = mat_low;
            ui_start.GetComponent <BoxCollider>().enabled = false;
        }
    }
Ejemplo n.º 11
0
    public void initTarget()
    {
        if (missileObjects != null)
        {
            for (int x = 0; x < missileObjects.Length; x++)
            {
                DestroyObject(missileObjects[x]);
                Destroy(missiles[x]);
            }
        }

        time = 1;
        Debug.Log("Button pressed");
        if (readTargetButton.GetComponent <CSVReader>().data != null)
        {
            Debug.Log("Read target csv reader not null");
            targetData = readTargetButton.GetComponent <CSVReader>().data;
            fileLength = targetData.GetLength(1) - 1;

            missileObjects = new GameObject[fileLength];
            missiles       = new MeshRenderer[fileLength];
            for (int x = 0; x < missileObjects.Length - 1; x++)
            {
                missileObjects[x] = new GameObject();
            }

            for (int x = 0; x < fileLength - 1; x++)
            {
                missileObjects[x].AddComponent <MeshRenderer>();
                missileObjects[x].AddComponent <MeshCollider>();
                missileObjects[x].AddComponent <ClickScript>();
                missiles[x] = missileObjects[x].GetComponent <MeshRenderer>();
                missiles[x] = Instantiate(missle.GetComponent <MeshRenderer>());
                missiles[x].GetComponent <ClickScript>().setNumber(x);
                Vector3 scale = new Vector3();
                scale.x = .1f;
                scale.y = .1f;
                scale.z = .1f;
                missiles[x].transform.localScale = scale;
            }

            //can tasks be marked as X percent complete
            Debug.Log("Target data init file length " + fileLength);

            fileLength--;
            targetPosX      = new double[fileLength];
            targetPosY      = new double[fileLength];
            targetPosZ      = new double[fileLength];
            targetVelocityX = new double[fileLength];
            targetVelocityY = new double[fileLength];
            targetVelocityZ = new double[fileLength];
            targetLeg       = new int[targetData.GetLength(0)];
            accelX          = new double[fileLength];
            accelY          = new double[fileLength];
            accelZ          = new double[fileLength];

            targetLegPosition = new int[fileLength];
            fileLength++;

            //init all targets ignore descriptons line
            for (int x = 0; x < fileLength - 1; x++)
            {
                targetPosX[x]        = double.Parse(targetData[0, x + 1]) * scalingFactor;
                targetPosY[x]        = double.Parse(targetData[1, x + 1]) * scalingFactor;
                targetPosZ[x]        = double.Parse(targetData[2, x + 1]) * scalingFactor;
                targetLegPosition[x] = 6;
                targetLeg[x]         = int.Parse(targetData[targetLegPosition[x], x + 1]);

                Debug.Log("Target Position Init " + targetPosX[x] / 20 + " " + targetPosY[x] / 20 + "  " + targetPosZ[x] / 20 + " X = " + x);


                targetVelocityX[x] = 0;
                targetVelocityY[x] = 0;
                targetVelocityZ[x] = 0;

                Vector3 newPos = new Vector3();
                newPos.x = (float)targetPosX[x];
                newPos.y = (float)targetPosY[x];
                newPos.z = (float)targetPosZ[x];

                missiles[x].transform.position = newPos;
            }
        }
        Debug.Log("Init Done");
    }