示例#1
0
    public void Init(Tool.ShipPart part)
    {
        UnitPos posInit = part.Cubes[0];

        //X = new Vector2(posInit.x, posInit.x);
        Y = new Vector2(posInit.y, posInit.y);
        Z = new Vector2(posInit.z, posInit.z);

        foreach (UnitPos pos in part.Cubes)
        {
            LinkPosList.Add(new LinkPos(pos, ParamAttribut != null ? ParamAttribut.Life : int.MaxValue));
            // update min and max
            X.x = Mathf.Min(X.x, pos.x);
            X.y = Mathf.Max(X.y, pos.x);

            Y.x = Mathf.Min(Y.x, pos.y);
            Y.y = Mathf.Max(Y.y, pos.y);

            Z.x = Mathf.Min(Z.x, pos.z);
            Z.y = Mathf.Max(Z.y, pos.z);
        }

        // init component
        // size of cube
        float size = part.Param.SquareSize;

        CompMeshGenerator.ParamCubeSize       = ScriptableObject.CreateInstance(typeof(Tool.SCROneValue)) as Tool.SCROneValue;
        CompMeshGenerator.ParamCubeSize.Value = size;

        CompMaterial.ParamMaterial          = ScriptableObject.CreateInstance(typeof(Tool.SCRMaterial)) as Tool.SCRMaterial;
        CompMaterial.ParamMaterial.Material = part.Param.Material;
    }
示例#2
0
    // Use this for initialization
    override public void Start()
    {
        LinkPosList.Add(new LinkPos(new UnitPos(0, 0, 0), ParamAttribut != null ? ParamAttribut.Life : int.MaxValue));

        AddComponent(ComponentLife);
        base.Start();

        MyMeshCollider.convex = true;
    }
示例#3
0
    public override void Hit(ContactPoint[] _points, int _dmg)
    {
        // will destroy object
        LinkPosList.Clear();
        _flagRefresh = true;
        // spawn spark

        GameObject obj = Tool.Builder.Instance.Build(Tool.Builder.FactoryType.Fx, (int)Tool.BuilderFx.Type.Sparkle, transform.position, Quaternion.identity, null);
        //obj.GetComponent<EntSparkle>().ImpactNormal = _points[0].normal;
    }